我试图了解如何使用try-except构造在Python中使用自定义异常。
以下是自定义异常的简单示例:
# create custom error class
class CustomError1(Exception):
pass
我试图像这样使用它:
# using try-except
def fnFoo1(tuple1, tuple2):
try:
assert(len(tuple1) == len(tuple2))
except AssertionError:
raise(CustomError1)
return(1)
fnFoo1((1,2), (1, 2, 3))
这会引发CustomeError1
,但也会提升AssertionError
,我希望将其包含在CustomError1
中。
以下是我想要的,但似乎不应该处理异常的方式。
# use the custom error function without try-catch
def fnFoo2(tuple1, tuple2):
if len(tuple1) != len(tuple2): raise(CustomError1)
print('All done!')
fnFoo2((1,2), (1, 2, 3))
编写隐藏其他异常的自定义异常的方法是什么?