Python 异常处理和引发

标签 python exception error-handling nested raise

假设我有以下 3 个脚本:

script1.py
script2.py
script3.py

假设我得到这样的回溯:

Traceback (most recent call last):
File "script1.py", line xyz, in ...
...
File "script2.py", line xyz, in ...
...
File "script3.py", line xyz, in ...
...
AttributeError: 'NoneType' object has no attribute 'CoolAttribute'

我在 script3.py 中出现了几个不同的异常。有没有一种方法可以在 script1.py 中的 xyz 行处理这些异常,而不处理 script2.py 中的异常?我只想在 script1.py 的一行中处理源自 script3.py 的异常。

最佳答案

一个简单的肮脏方法是用 try except close 包裹你的 simple3.py 并在任何 script3 异常上引发自定义异常。

class BaseSimpleError(Exception):
    """dummy class for all Simple3 errors"""

try:
    ...your simple3.py goes here...
except Exception, e:
    raise BaseSimpleError()

在 script1 中,您应该导入 BaseSimpleError 并在需要时捕获它。

关于Python 异常处理和引发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25405327/

相关文章:

python - ChatGPT API - 创建大于 gpt-3.5-turbo token 限制的更长 JSON 响应

java - 当clear()方法调用抛出UnsupportedOperationException时如何清除 map 的内容?

java - Hibernate删除的对象应该重新保存

node.js - 惯用的 Node 错误处理

error-handling - 为什么类中的错误仅在运行时捕获?

python - 在 PySide2 中为 QML 注册枚举

python - 当我编辑详细信息时,Django 表单正在添加字符

python - 通过子类化 `io.TextIOWrapper` 来子类化文件——但是它的构造函数有什么签名?

Java-DOM-Parser : Exception on Transformer. 转换

php - 使用Codeigniter尝试从数据库显示图像时出现错误消息