【发布时间】:2023-04-01 18:24:01
【问题描述】:
我想为继承自 Exception 类的 python 中的 NoneType 错误定义一个自定义 Exception 类。我希望下面的代码能为我做这样的事情,但没有成功。有没有办法做到这一点?
class NoneTypeException(Exception):
pass
try:
image = cv2.imread("/path/")
gray = cv2.cvtColor(image.copy(), cv2.COLOR_BGR2GRAY) #exception should be raised here
...
except NoneTypeException:
raise NoneTypeException("Image not found") # and should be caught here
我想尝试除块引发 NoneTypeException。有办法吗?
【问题讨论】:
-
如果
cv2.imread("/path/")提高AttributError,那么你必须抓住AttributeError。您不能定义由其他代码引发的异常。但是,如果你真的想的话,你可以抓住AttributError并在那个除了块中提高NoneTypeException。 -
错误必须由 something 引发,而ˋcv.imreadˋ 不知道您的新异常。您为什么希望在这里提出您的异常?
-
@TedKleinBergman 确实如此;但是我可能提前有一些其他属性错误,例如不正确的函数名称(属性错误可能有很多原因),所以我想将错误设置为NoneType,IncorrectFunction ...
-
@MisterMiyagi 哦,你是对的;我只是举个例子。案例是 cv2.cvtColor,如果图像为无,则会引发异常。我会改一下问题。谢谢。
-
cv2.cvtColor 函数也不知道您的自定义异常 - 您为什么希望它引发您的异常?
标签: python-3.x opencv exception nonetype