gpt4 book ai didi

python-3.x - 不使用try/except怎么捕捉错误?

转载 作者:行者123 更新时间:2023-12-03 08:49:24 24 4
gpt4 key购买 nike

有什么我可以用来捕获python中的错误而无需使用try/except的东西吗?

我在想这样的事情:

main.py

from catch_errors import catch_NameError
print(this_variable_is_not_defined)

catch_errors.py
def catch_NameError(error):
if type(error) == NameError:
print("You didn't define the error")

输出为:
You didn't define the error

代替:
Traceback (most recent call last):
File "main.py", line 1, in <module>
print(this_variable_is_not_defined)
NameError: name 'this_variable_is_not_defined' is not defined

最佳答案

可以通过创建上下文管理器来完成此操作,但是与显式try:except:相比,它提供了可疑的好处。您将必须使用with语句,因此很清楚行为将在何处更改。在此示例中,我使用 contextlib.contextmanager 进行此操作,这节省了使用__enter____exit__方法创建类的繁琐工作。

from contextlib import contextmanager

@contextmanager
def IgnoreNameErrorExceptions():
"""Context manager to ignore NameErrors."""
try:
yield
except NameError as e:
print(e) # You can print whatever you want here.

with IgnoreNameErrorExceptions():
print(this_variable_is_not_defined)

这将输出
name 'this_variable_is_not_defined' is not defined

关于python-3.x - 不使用try/except怎么捕捉错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45178366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com