Pydoc 未捕获异常
Pydoc Uncaught Exception
我在 pydoc 中查找了 sys 因为我正在阅读的一本书向我推荐了它,我遇到了 last_type 这是最后一个未捕获的异常类型,我的问题是什么是 [=12 中的未捕获异常=] 它的用途是什么?
未捕获的异常就是在 try-except 语句中未被异常处理程序处理并因此导致脚本停止的所有异常。
如果发生这种情况,解释器默认打印异常类型、错误消息和回溯。
因此,例如,如果您尝试 print(1/0)
,您将获得类型为
ZeroDivisionError
、错误消息 "division by zero" 以及代码中导致异常的最后几步(回溯)。
print(1/0)
Traceback (most recent call last):
File "E:\Programme\Anaconda3\envs\py36\lib\site-
packages\IPython\core\interactiveshell.py", line 2910, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-12-2fc232d1511a>", line 1, in <module>
print(1/0)
ZeroDivisionError: division by zero
未捕获的异常让您知道出了点问题。然后你必须删除错误源(也许你真的想写 print(1/10)
,或者你必须捕获并处理异常,让你的程序恢复执行错误源下的代码。
try:
1/0
except ZeroDivisionError as err: # error is caught here
pass # e.g just do nothing
# print(type(err).__name__, flush=True) # or do something, like print
# error type
print("will be printed because exception before was caught")
我在 pydoc 中查找了 sys 因为我正在阅读的一本书向我推荐了它,我遇到了 last_type 这是最后一个未捕获的异常类型,我的问题是什么是 [=12 中的未捕获异常=] 它的用途是什么?
未捕获的异常就是在 try-except 语句中未被异常处理程序处理并因此导致脚本停止的所有异常。
如果发生这种情况,解释器默认打印异常类型、错误消息和回溯。
因此,例如,如果您尝试 print(1/0)
,您将获得类型为
ZeroDivisionError
、错误消息 "division by zero" 以及代码中导致异常的最后几步(回溯)。
print(1/0)
Traceback (most recent call last):
File "E:\Programme\Anaconda3\envs\py36\lib\site-
packages\IPython\core\interactiveshell.py", line 2910, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-12-2fc232d1511a>", line 1, in <module>
print(1/0)
ZeroDivisionError: division by zero
未捕获的异常让您知道出了点问题。然后你必须删除错误源(也许你真的想写 print(1/10)
,或者你必须捕获并处理异常,让你的程序恢复执行错误源下的代码。
try:
1/0
except ZeroDivisionError as err: # error is caught here
pass # e.g just do nothing
# print(type(err).__name__, flush=True) # or do something, like print
# error type
print("will be printed because exception before was caught")