我创建了一个这样的异常
class MyException(Exception):
"""
myexception
"""
然后代码如下:
try:
_, _, test = test_str.rpartition("/")
return test
except MyException:
print(
f'An error occurred while transforming')
return test_str
当使用
test_str = None
执行代码时,不会捕获异常。如果我将 MyException 替换为 Exception,它会按预期工作。有什么问题吗?
如果我用 Exception 替换 MyException,它会按预期工作。
None.rpartition
会引发 AttributeError
。 AttributeError
是 Exception
的子类,因此 except Exception
会捕获它。
AttributeError
不是 MyException
的子类,因此 except MyException
不会 捕获它。
定义一个新的异常提供了一些带有“新”东西的方法来引发,以便更准确地描述它遇到的问题。它没有为您提供一种新的方法来描述方法已经引发的不同异常。