忽略抛出并捕获到库中的异常

Feu*_*mel 5 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)
Run Code Online (Sandbox Code Playgroud)

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

在PyCharm或Python中是否有一种方法可以让调试器不会在没有任何代码涉及的情况下抛出并捕获到库中的异常?

小智 8

在 PyCharm 中,转到“运行”-->“查看断点”,然后选中“引发时”和“忽略库文件”。

选项菜单的屏幕截图

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

感谢CrazyCoder的功能请求链接,该解决方案已被添加。