python - 忽略在库中抛出和捕获的异常

标签 python debugging exception pycharm

我使用的 Python 标准库和其他库(例如 PyQt)有时会针对非错误条件使用异常。除了函数 os.get_exec_path() 之外,请查看以下内容。它使用多个 try 语句来捕获在尝试查找某些环境数据时抛出的异常。

try:
    path_list = env.get('PATH')
except TypeError:
    path_list = None

if supports_bytes_environ:
    try:
        path_listb = env[b'PATH']
    except (KeyError, TypeError):
        pass
    else:
        if path_list is not None:
            raise ValueError(
                "env cannot contain 'PATH' and b'PATH' keys")
        path_list = path_listb

    if path_list is not None and isinstance(path_list, bytes):
        path_list = fsdecode(path_list)

这些异常并不表示错误,而是在正常情况下抛出的。当对这些异常之一使用异常断点时,调试器也会在这些库函数中中断。

在 PyCharm 或 Python 中是否有一种方法可以让调试器在不涉及我的代码的情况下不中断在库中抛出和捕获的异常?

最佳答案

在 PyCharm 中,转到 Run-->View Breakpoints,然后选中“On raise”和“Ignore library files”。

screenshot of the options menu

第一个选项使调试器在引发异常时停止,而不是仅在程序终止时停止,第二个选项为 PyCharm 提供忽略库文件的策略,因此主要在您的代码中搜索。

感谢 CrazyCoder 找到了解决方案的 link添加到功能请求中。

关于python - 忽略在库中抛出和捕获的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11966276/

相关文章:

android - 使用 Android Studio 调试 : Two different kinds of breakpoints

javascript - JQuery 1.4.2 → 1.4.3 的差异足以打破良好的旧图片库 †

c++ - 在 C++ 或 C++11 中重新抛出类型化异常

Python:如何从 numpy 中的矩阵中消除所有零行

python - 棘手的 Python 3.5 CSV 难题 - 从 CSV 文件高效创建 100 个列表,无需每次都引用条件

python - 向左合并混合数量的标识符

python - 如何使用基于使用列的函数的条件选择 Python Dataframe 中的行

c# - 在Visual Studio 2008中调试多线程C#-C++/CLI-C++解决方案: What are these threads?

java - 何时在 Java 中使用异常(示例)

c# - System.InvalidCastException : Can't convert VarChar to Int32 at MySqlConnector. Core.Row.GetInt32(Int32序数)