python - 仅捕获 Python 中的一些运行时错误

标签 python exception-handling try-catch runtime-error

我正在导入一个在某些情况下会引发以下错误的模块: 运行时错误:pyparted 需要 root 访问权限

我知道我可以在导入之前检查 root 访问权限,但我想知道如何通过 try/except 语句捕获这种特定类型的错误以供将来引用。有什么方法可以区分此 RuntimeError 和其他可能引发的错误吗?

最佳答案

您可以检查异常的属性以区别于其他可能的 RuntimeError 异常。例如,如果它与预定义的消息文本不匹配,则重新引发错误。

    try:
        import pypatred
    except RuntimeError,e:
        if e.message == 'RuntimeError: pyparted requires root access':
            return 'pyparted - no root access'
        raise

当然,直接文本比较只是一个例子,您可以搜索包含的子串或正则表达式。

值得注意的是异常的.message属性是deprecated starting with Python 2.6 .您可以在 .args 中找到文本,通常是 args[0]

... For 2.6, the message attribute is being deprecated in favor of the args attribute.

关于python - 仅捕获 Python 中的一些运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/825909/

相关文章:

c# - 在Gtk#应用程序中将全局异常处理程序放在哪里?

java - 如何查看给定方法中抛出的运行时异常?

python - 无效的 block 标记 : 'pay_pal' , 预期 'endblock' 或 'endblock content'

python - Pandas:如何使用 json 数组分解数据框

python - 在 Python 2.7 中从 Unicode 转换字符串时遇到问题?

Python;异常感知映射()

python - 在 Python 函数中使用输入语句作为参数

php - 有没有一种方法可以阻止堆栈跟踪输出异常错误?

java - 捕获错误(而不是异常)有什么意义,因为程序不会由 JVM 启动

sql-server - 从TRY…CATCH block 调用时,SQL Server存储过程的返回码为NULL。