异常链

✍ dations ◷ 2025-10-20 10:18:17 #软件设计模式

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

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

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

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

相关

  • 微球黑粉菌纲Heterogastridiales 白冬孢酵母目(Leucosporidiales) 微球黑粉菌目(Microbotryales) 锁掷酵母目(Sporidiobolales)微球黑粉菌纲(学名:Microbotryomycetes)是担子菌门柄锈菌亚门下的一
  • 细胞素风暴细胞素风暴、细胞因子风暴(英语:Cytokine storm),又称高细胞因子症(英语:Hypercytokinemia),一种不适当的免疫反应,因为细胞因子与免疫细胞间的正回馈回路而产生。这也被认为是1918年
  • 白萝卜萝卜(学名:Raphanus raphanistrum subsp. sativus),别名莱菔、芦菔,在四县、闽南、潮汕地区俗称菜头,为十字花科萝卜属草本植物,是野萝卜的亚种。萝卜的根部是最常见的蔬菜之一,但实
  • 阳离子离子 (英语:Ion)是指原子或原子基团失去或得到一个或几个电子而形成的带电荷的个子。得失电子的过程称为电离,电离过程的能量变化可以用电离能来衡量。在化学反应中,通常是金属元
  • 船闸船闸(navigation lock),使船舶通过航道中有集中水位落差河段的一种通航建筑物。船闸由闸室(lock chamber)、闸首(lock head)、输水系统、引航道等组成。在闸首上设有工作闸门、检修
  • 片上伸片上伸(1884年2月20日-1928年3月5日)是一位日本作家、俄语文学家与文艺评论家,出生于日本爱媛县今治市。
  • 混沌的边缘混沌的边缘是一个用来形容由计算机科学家克里斯托弗·兰顿发现的现象。最开始次现象被用来描述一个变量λ的一段取值范围,该变量是作为细胞自动机的一个参数。当λ变化,细胞自
  • 巴特·包克巴特·扬·包克(荷兰语:Bart Jan Bok,1906年4月28日-1983年8月5日)是一位美籍荷兰天文学家。包克生于荷兰,但他的童年是在荷属东印度度过的。后来他进入莱顿大学和格罗宁根大学就
  • KC-390运输机KC-390是巴西航空工业公司研发的一种中型,双发涡扇军用运输机。也可作为空中加油机与受油机。最大载重21吨(或23吨)。2006年巴西航空工业公司开始研究C-130级别的运输机的可行
  • 铃木善幸铃木善幸(日语:鈴木 善幸/すずき ぜんこう ;1911年1月11日-2004年7月19日),日本政治家,第70任日本内阁总理大臣。生于岩手县。1936年毕业于东京水产学校水产讲习所(今东京海洋大学)。