处理 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 异常。