我有一个功能:
def f(x):
if x == 'dog':
print('ok')
elif x == 'cat':
print('ok')
else:
raise MyException('Not an x i would expect')
我正在添加一个异常,以防有一天我将任何提供x
的东西更改为f()
,然后忘记修复f()
,这样我就可以很容易地找到问题。你知道吗
f()
的错误方法?你知道吗其次,f()
是另一个函数的一部分,该函数可能获得处理某些异常的装饰器:
@an_exception_handler
def g(x):
f(x)
return 1000
我不希望@an_exception_handler
意外地处理MyException
(例如,如果MyException
是ValueError
的子级,@an_exception_handler
处理ValueError
)。你知道吗
MyException
应该是自定义异常,还是使用现有的很少发生的异常?你知道吗
如果您真的不想使
MyException
成为ValueError
的子类,那么您肯定应该创建自己的异常类,除非找到另一个描述异常的异常类。你知道吗老实说,你处理“除了这个以外的所有
ValueError
”的方式(从概念上说,这肯定是一个ValueError
)感觉有点不协调。你想用它做什么?你知道吗正如pm2ring在评论中指出的那样,断言也是一个很好的方法。可能比另一个例外要好。你知道吗
相关问题 更多 >
编程相关推荐