异常链

✍ dations ◷ 2025-08-13 04:27:01 #软件设计模式

异常链是一种面向对象编程技术,指将捕获的异常包装进一个新的异常中并重新抛出的异常处理方式。原异常被保存为新异常的一个属性(比如)。这个想法是指一个方法应该抛出定义在相同的抽象层次上的异常,但不会丢弃更低层次的信息。

比如,播放视频文件的方法可能捕获读取文件过程中的异常,将其包装在新抛出的播放视频文件的异常中。用户界面部分不需要知道读取字节块、 eof() 调用或其他操作时发生的错误,这是意外的文件结尾、读取错误或者其他的错误:用户界面只需要从 属性中提取出异常信息。用户界面层会有自身一系列的异常。若对 感兴趣,可以在调试期间、或在适当的日志中查看异常的堆栈跟踪信息( stack track )。

Java 中 受控异常(Checked exceptions) 特别强调了抛出正确类型的异常,从 Java 1.4版本开始,几乎所有的异常都支持异常链。

在运行时环境,比如 Java 或 .Net 中,都有工具连接到运行时引擎;每当感兴趣的异常发生,这些工具就记录下内存中的调试信息以及抛出异常的时间(栈和堆上的值)。这些工具提供异常截取(Exception Interception)功能,它们为生产环境、测试环境、开发环境中的Java程序中出现的的异常提供了信息。

相关

  • 洗澡洗澡,又名沐浴,是个人卫生活动,但是也可能在社交场合,例如公众浴室、桑拿浴等。沐浴有分洗身和泡澡,前者用水与沐浴乳清洁身体;后者的主要目的并非洗身,而是浸泡身体。十四世纪中黑
  • 阳光海岸阳光海岸(Sunshine Coast)乃位于澳大利亚昆士兰州中南部、位居府城布里斯本以北、为一座国际渡假城市,人口230,429(2007年);2008年,为了区域综合发展,昆士兰州政府将阳光海岸一带的
  • 扁豆Dolichos lablab L. Dolichos purpureus L. Lablab niger Medikus Lablab lablab (L.) Lyons Lablab vulgaris (L.) Savi Vigna aristata Piper扁豆(学名:Lablab purpureus、
  • 琥珀宫琥珀宫(俄语:Янтарная комната),又称琥珀屋、琥珀厅,是位于俄罗斯圣彼得堡附近凯瑟琳宫内的一座通体由琥珀和黄金装饰而成的,极端奢华的建筑。曾在18~20世纪间一度
  • 伦敦通勤带伦敦通勤带(London commuter belt)是指一个包括伦敦及伦敦附近拥有众多通勤至伦敦人口的卫星城的大都会区,又称伦敦大都会区(London metropolitan area)或东南大都会区(Southeast
  • 赣韶铁路赣韶铁路又称韶赣铁路,起自京九铁路南康站(属赣州市),终到韶关东站与京广铁路接轨,全长194公里,其中正线长179公里(广东省境内116公里、江西省境内62公里)。全线设旗口、新城、青龙
  • 副热带干旱半干旱气候副热带干旱半干旱气候主要分布于热带干旱半干旱气候的向高纬一侧,约在纬度25至35度的大陆西岸和内陆地区。具体分布于:北非、约旦、叙利亚、伊拉克、美国西南部、墨西哥北部、
  • 多和田任益多和田 秀弥(日语:たわだ ひでや、1993年11月5日-)是日本大阪府出生的男性演员及模特儿。目前隶属于GVjp。到了2015年,他在特摄作品《手里剑战队忍忍者》之中,他的角色为“金治・
  • 约翰·德米扬鲁克约翰·德米扬鲁克(乌克兰语:Іван Миколайович Дем'янюк;英语:John Demjanjuk,1920年4月3日-2012年3月17日)是退休汽车工人,前美国公民。2011年,德国法院宣判年
  • KDE Software Compilation 4KDE Software Compilation 4 (缩写KDE SC 4,中文译名KDE软件集4)是KDE社区发布的桌面环境的最新系列。本系列第一个主要版本(4.0)发布于2008年1月11日,最新的主要版本(4.14)发布于20