c# - 调试时如何正确忽略异常?
问题描述
我将我的 Visual Studio 异常设置设置为在引发“公共语言运行时异常”时中断。
我有许多例程可以捕获异常、处理它们并继续。当我调试我的程序时,我相信这些异常已经被正确处理并且不希望调试器停止它们。
如何防止调试器停止处理异常?(注意,我想打破所有其他 CLR 异常)
我认为 DebuggerStepThrough 可以解决问题。然而事实并非如此。以下代码在 'Method1();' 处停止
using System;
namespace ConsoleApp8
{
class Program
{
static void Main(string[] args)
{
Method1();
}
[System.Diagnostics.DebuggerStepThrough]
static void Method1()
{
try
{
throw new InvalidOperationException();
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
}
}
-- 编辑 -- Kirk - 我只在特殊情况下抛出异常。我使用 Visual Studio Tools for Office。这个 MS 库经常抛出可以处理和忽略的异常。
我想处理另一个库抛出的某些异常,但防止 VS2017 调试器在这些错误发生时停止。
需要明确的是,这些异常通常是 COM 异常。我不希望调试器忽略所有 COM 异常。我只希望调试器忽略我已捕获和处理的 COM 异常。
这可能吗?
解决方案
调试器可以在抛出异常时中断执行,因此您可以在调用处理程序之前检查异常。在异常设置窗口(调试 > 窗口 > 异常设置)中,展开异常类别的节点,例如公共语言运行时异常。在那里你可以改变行为。
推荐阅读
- scala - Spark 无法捕获 Size超过 Integer.MAX_VALUE 错误异常?
- c# - 删除开始和结束之间的字符串的一部分
- android - 如何在我的用户名字符串旁边添加一个自动增量整数?
- amazon-web-services - dynamodb 中的哈希键和范围键是什么以及如何使用它们
- indexing - 未定义索引:nid
- sql-server - TSQL 运行总计
- indexing - 由于被 robots.tx 阻止,Mailchimp 登录页面无法在 Google Search Console 上编入索引
- python-3.x - 我找不到如何使用 selenium python 获取文本
- linux - 如何找到所有大于可变时间戳的错误日志?
- swift - 如何让 Swift 委托在 React Native iOS App 中工作