【发布时间】:2025-12-12 16:05:02
【问题描述】:
看到被建议为“相似”的问题,似乎大多数人想要的与我想要的相反。我想要的是 Vs 代码的调试器会在错误点停止,即使在 try catch 中(通常会这样做)。
但它所做的并不是在像这样的 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 的调试器可能运行正确(因为我的代码告诉它如何处理异常!)但是我有一些我想调试而不是捕获的错误.事实上,我的外部 try catch 就在那里,因为我正在使用一个集群,当有任何错误时会向我发送电子邮件并告诉我它们。否则我的主代码周围根本不会有 try catch。
有没有办法告诉 vs-code 在我实际调试时忽略我的尝试捕获?
我在写这篇文章时的一个想法是改变我捕获的异常类型......尽管在调试期间我希望它总是停止,而在不调试时我希望它永远不会停止并向我发送一封电子邮件-带有错误的邮件。
有什么想法吗?
新错误:
Exception has occurred: TypeError
catching classes that do not inherit from BaseException is not allowed
当使用我的EmptyException 答案时:
class EmptyError(Exception):
def __init__(self):
pass
【问题讨论】:
-
有点困惑。你的意思是即使你在try catch中设置了断点,它也不起作用? (或)您想在不设置断点的情况下停止错误吗?如果是前者,它在我的 vscode 中可以正常工作。我的意思是它在 try catch 内停止。但如果是后者,您可以在 Debugger -> Breakpoints 选项卡中勾选“Raised Exceptions”复选框。即使没有断点,它也会在引发异常的行停止。
标签: python-3.x visual-studio visual-studio-code vscode-debugger