以下是我要做的,我不知道该找什么,也不知道该如何设计:
我正在为一个应用程序开发一个异常层次结构。作为这一点的一部分,有些异常有时是致命的,有时是可恢复的——特定实例是致命的还是可恢复的,在运行时由异常本身决定。为了便于组织,我希望能够做一些类似(我在python中工作):
try:
mightThrowAnException()
except RecoverableException:
handleThisException()
然后我会有类似的东西:
^{pr2}$其中MyException可以将fataxception或RecoverableException作为基类,具体取决于构造函数中发生的情况。在
我知道我可以有两个独立的异常MyFatalException
和{
所以有几个问题:
__new__()
方法,我不太确定这三种方法的优缺点是什么。这些都是正确的方法还是我还需要别的方法?在
我的建议是将异常的内容与其含义分离开来。同一个例外在不同的地方可能有不同的含义!在
您的问题建议将异常转换为具有高级功能(如检查日志)的“感知”对象。但这并不是特例。尽可能多地提供有关对象的轻量级数据。捕捉代码就是这样做的,正如我上面所说的,完全可以想象某些异常将在某个地方以某种方式处理,而在另一个地方以另一种方式处理。在
如果无法将特定异常归类为致命的或可恢复的,我可能会使用属性来确定异常是否致命。在
然而,异常的提出者可能不应该告诉侦听器异常是否致命。他们可以处理被认为是致命的异常。异常的目的是声明出了问题,然后让潜在用户确定他们是否可以从中恢复。在
相关问题 更多 >
编程相关推荐