处理 Python3 中的异常
Handling Exception in Python3
我正在尝试 运行 这个:
try:
number = int(number)
except ValueError:
raise InvalidValueError("%s is not a valid base10 number." % number)
所以,当我设置 number = '51651a'
我得到这个:
Traceback (most recent call last):
File "test.py", line 16, in decbin
number = int(number)
ValueError: invalid literal for int() with base 10: '51651a'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "test.py", line 51, in <module>
print(decbin('51651a', True))
File "test.py", line 18, in decbin
raise InvalidValueError("%s is not a valid base10 number." % number)
__main__.InvalidValueError: 51651a is not a valid base10 number.
我的问题是,有没有什么办法让我看不到“在处理上述异常期间,发生了另一个异常:”这一行
以及上面的所有内容。
您正在寻找的是使用 from None
1.
禁用异常链接
将您的 raise
语句更改为
raise InvalidValueError("%s is not a valid base10 number." % number) from None
并且只会引发您的自定义异常,而不会引用最初捕获的 ValueError 异常。
我正在尝试 运行 这个:
try:
number = int(number)
except ValueError:
raise InvalidValueError("%s is not a valid base10 number." % number)
所以,当我设置 number = '51651a'
我得到这个:
Traceback (most recent call last):
File "test.py", line 16, in decbin
number = int(number)
ValueError: invalid literal for int() with base 10: '51651a'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "test.py", line 51, in <module>
print(decbin('51651a', True))
File "test.py", line 18, in decbin
raise InvalidValueError("%s is not a valid base10 number." % number)
__main__.InvalidValueError: 51651a is not a valid base10 number.
我的问题是,有没有什么办法让我看不到“在处理上述异常期间,发生了另一个异常:”这一行 以及上面的所有内容。
您正在寻找的是使用 from None
1.
将您的 raise
语句更改为
raise InvalidValueError("%s is not a valid base10 number." % number) from None
并且只会引发您的自定义异常,而不会引用最初捕获的 ValueError 异常。