C# 如何防止VisualStudio在发生更深层次的异常后,中断所有等待
那么发生的情况是:C# 如何防止VisualStudio在发生更深层次的异常后,中断所有等待,c#,visual-studio,debugging,async-await,C#,Visual Studio,Debugging,Async Await,那么发生的情况是: VisualStudio(对我来说,作为一个最终用户)在五个异步/等待方法中出现了有效的异常 这是我喜欢的行为,因为我可以检查状态,看看发生了什么 通常这条线标为黄色 当我按下continue时,它将在上层堆栈中的每个async/Wait上再次中断。标记为绿色,可能是因为真正的堆栈在下面,但这是我的假设 最后这些我想阻止的,因为这意味着我必须按5次F5才能继续,同时不给我更多的信息,这样我就可以在中断1时找到答案 有没有办法在不禁用1的情况下防止4 注意:这是一个ASP.NE
注意:这是一个ASP.NET MVC应用程序,也可以是一个后台Ajax调用。看起来您没有捕获异常,然后它将在调用堆栈中冒泡,无论您是否使用调试器检查它。这是故意的。无法清除已发生的异常。调用堆栈已经处于展开状态,这是不可逆的 一个解决方案可能是添加一个带有条件抛出的try catch,如下所示:
try
{
// code that may crash
}
catch
{
// inspect the Exception here using VS
var reThrow = true; // You can change reThrow to false while debugging
if (reThrow) throw;
}
看起来您没有捕获异常,然后它将在调用堆栈中冒泡,不管您是否使用调试器检查它。这是故意的。无法清除已发生的异常。调用堆栈已经处于展开状态,这是不可逆的 一个解决方案可能是添加一个带有条件抛出的try catch,如下所示:
try
{
// code that may crash
}
catch
{
// inspect the Exception here using VS
var reThrow = true; // You can change reThrow to false while debugging
if (reThrow) throw;
}
嗨,彼得,谢谢你的回答!我对代码的工作方式很满意,我只是不想在同一个异常中断时按Continue五次。是的,我知道存在SQL连接错误-无需总共提醒我五次
wait
s:)如果唯一的解决方法是添加try/catch,我不会这样做-因为我不想在调试过程中牺牲代码。在某种程度上,我在寻找“永远不要违背父母的期待”之类的东西。嗨,彼得,谢谢你的回答!我对代码的工作方式很满意,我只是不想在同一个异常中断时按Continue五次。是的,我知道存在SQL连接错误-无需总共提醒我五次wait
s:)如果唯一的解决方法是添加try/catch,我不会这样做-因为我不想在调试过程中牺牲代码。在某种程度上,我在寻找“永远不要违背父母的期待”之类的东西。