Python 3.x 如何让vscode调试器即使在python中的try-catch中也停止?

Python 3.x 如何让vscode调试器即使在python中的try-catch中也停止?,python-3.x,visual-studio,visual-studio-code,vscode-debugger,Python 3.x,Visual Studio,Visual Studio Code,Vscode Debugger,看到被建议为“相似”的问题,似乎大多数人想要的与我想要的相反。我想要的是,Vs代码的调试器即使在try catch中也会在错误点停止(通常会这样做) 但是,当它进入像这样的试捕时,它不会停止: import traceback try: main() # has bugs I'm trying to debug except Exception as e: send_email(traceback.format_exc()) send_email(e) 我知道这可能

看到被建议为“相似”的问题,似乎大多数人想要的与我想要的相反。我想要的是,Vs代码的调试器即使在try catch中也会在错误点停止(通常会这样做)

但是,当它进入像这样的试捕时,它不会停止:

import traceback 

try:
    main() # has bugs I'm trying to debug
except Exception as e:
    send_email(traceback.format_exc())
    send_email(e)
我知道这可能是一件奇怪的事情&vs-code的调试器可能运行正常(因为我的代码告诉它如何处理异常!),但我有一些bug,我想调试它们,而不是捕获它们。事实上,我的外部try-catch就在那里,因为我正在使用一个集群,当出现任何bug时,它会向我发送电子邮件,并告诉我这些bug。否则,我就不会在我的主代码周围进行尝试捕获

当我实际调试时,有没有办法告诉vs代码忽略我的try捕获


我在写这篇文章的时候有一个想法,就是改变我捕获的异常的种类……不过在调试期间,我希望它总是停止,而在不调试时,我希望它永远不会停止,并向我发送一封带有错误的电子邮件

有什么想法吗


新错误:

Exception has occurred: TypeError
catching classes that do not inherit from BaseException is not allowed
使用my
EmptyException时
回答:

class EmptyError(Exception):
    def __init__(self):
        pass

这可能是一种非常愚蠢的方法,但当我在调试模式下运行时,我有一个设置为true的标志:

args.debug = True
然后根据该标志设置异常类型:

if args.debug:
    args.ExceptionType = Exception
else:
    args.ExceptionType = EmptyError
其中,
EmptyError
是一个自定义异常,它不做任何事情,只是在调试模式下运行时VS代码会停止:

class EmptyError(Exception):
    def __init__(self):
        pass

有点傻,但我不知道什么更好。

我只是放了一个
System.Diagnostics.Debugger.Break()就在需要调试器停止的行之前,即断点。在此更改之前,调试器未停止。在此之后,它在每个断点处停止。我在用visualstudio做mac。这是一个有点混乱的c#(.NETCore)项目。你的意思是即使你在try-catch中设置了断点,它也不起作用吗?(或)是否要在出错时停止而不设置断点?如果是前者,则它在我的vscode中正常工作。我是说它停在里面试着接球。但如果是后者,您可以在调试器->断点选项卡中勾选“引发异常”复选框。即使没有断点,它也会在引发异常的行停止。