【发布时间】:2020-07-20 21:40:06
【问题描述】:
我正在创建一个需要使用 OS 模块的 Python 程序,并且我想自定义报告错误消息。我正在使用 try 和 except 来完成此操作:
try:
os.mkdir(name)
except FileExistsError:
raise FileExistsError(name + "\n" + " ^ The directory you specified already exists.")
但是,我想删除
Traceback (most recent call last):
File "file.py", line 20, in <module>
raise FileExistsError(name + "\n" + " ^ The directory you specified already exists.")
部分以便在我每次引发异常时都不会打印引发此异常的代码。
我该怎么做呢?
【问题讨论】:
-
如果未处理接收,则打印此信息。您需要处理异常,即在
except块中捕获它并对其进行处理。你只是提出了一个新的异常,然后不处理。 -
您可以设置
sys.tracebacklimit = 0,或使用sys.excepthook忽略回溯本身。有关详细信息,请参阅here。 -
Zvone 是对的。如果您不想看到它,为什么要提出错误。因此,您正在捕获错误,然后作为响应引发相同的错误。如果您想捕获错误,则将您的字符串打印到控制台而不回溯到控制台中,然后摆脱 raise 并在 except FileExistsError 之后使用 print(“string”)。
标签: python try-except python-os