如何在Python中处理AssertionError并找出发生在哪一行或语句上?

devtk:

我想处理AssertionErrors以便向用户隐藏堆栈跟踪的不必要部分,并打印一条消息,说明发生错误的原因以及用户应采取的措施。

有什么方法可以找出assertexcept块中失败的行或语句

try:
    assert True
    assert 7 == 7
    assert 1 == 2
    # many more statements like this
except AssertionError:
    print 'Houston, we have a problem.'
    print
    print 'An error occurred on line ???? in statement ???'
    exit(1)

我不想将其添加到每个assert语句中:

assert 7 == 7, "7 == 7"

因为它会重复信息。

phihag:

使用回溯模块:

import sys
import traceback

try:
    assert True
    assert 7 == 7
    assert 1 == 2
    # many more statements like this
except AssertionError:
    _, _, tb = sys.exc_info()
    traceback.print_tb(tb) # Fixed format
    tb_info = traceback.extract_tb(tb)
    filename, line, func, text = tb_info[-1]

    print('An error occurred on line {} in statement {}'.format(line, text))
    exit(1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Python中处理AssertionError并找出发生在哪一行或语句上?

SQLite android 中读取数据发生在以下哪一行?

我的python代码如何自动知道在Excel中停止在哪一行

我需要找出学生在哪一门课程中得分最高

如何在Java中使用一个PrintStream中找出发生的异常

python3如何在应用error_callback时找出apply_async目标函数中的哪一行导致错误

如何查看发生在哪一列的数据截断

SSL握手发生在哪一层?

如何找出 UITableView 中的哪一行收到了强制触摸事件?

在一行中处理条件语句

如何在使用固定模式的文件中查找哪一行缺少属性?

我想找出在Ag-Grid中编辑了哪一行?

找出文本文件中哪一行与单词匹配

找出哪一行代码生成SQL异常

如何在python中从csv生成每一行的插入语句?

如何在一行python3中组合多个if语句

如何确定在mysql中删除哪一行

如何在Java中处理一行?

如何确定在XCeed Datagrid中双击了哪一行的哪一列?

如何在Python中打印每一行处理代码?

C / C ++编译器如何知道错误在哪一行

如何查找特定单词在哪一行。[蟒蛇]

Python和Google表格-检查数据在哪一行

复制构造函数在哪一行调用?

如何在 Linux 中使用 grep 找出一行中的单词?

如何知道动态内容中的CSS错误发生在哪里或如何在CSS错误时停止脚本

R:如何根据另一个变量中的值选择dplyr :: distinct()保留在哪一行?

如何使模糊事件发生在每个循环的表行上

如何在python的sys.stdin中的一行上提取多个单词?