C# Pragma 在抛出错误时抑制中断

标签 c# exception pragma

首先,我运行我的应用程序,并在出现任何错误(已处理或未处理)时抛出异常。

其次,我使用 TypeConverter 将用户输入字符串转换为实际对象。

第三个 TypeConverter 没有提供 TryConvert 方法,所以我只能使用异常进行验证,在这里使用这段相当丑陋的代码:

try
{
    this._newValue = null;
#pragma Magic_SuppressBreakErrorThrown  System.Exception
    this._newValue = this.Converter.ConvertFromString(this._textBox.Text);
#pragma Magic_ResumeBreakErrorThrown  System.Exception
    this.HideInvalidNotification();
}
catch (Exception exception)
{
    if (exception.InnerException is FormatException)
    {
        this.ShowInvalidNotification(this._textBox.Text);
    }
    else
    {
        throw;
    }
}

我发现每次键入 -1- 或其他一些无效字符时,让 VS 中断执行会让人分心。我可以使用类似于 this 的东西但并非我要转换的所有类型都具有 TryParse 方法。

我希望有一些方法可以在不更改我的异常设置的情况下禁用 try 中代码部分的中断。

最佳答案

将 try/catch 放在它自己的方法中并在方法上设置此属性:

[System.Diagnostics.DebuggerNonUserCode]

调试器不会在该方法内停止(即使是断点)。当方法完成时,异常已经被处理,所以它也不会在那个时候中断。

关于C# Pragma 在抛出错误时抑制中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2513577/

相关文章:

c# - 如何通过 Interop 访问 Excel 的 "Save Thumbnail"功能?

c# - ListBox.DataSource 集合与 ListBox.Items 之间的区别?

java - 未达到 Spring MVC 中的异常处理

c++11 - 在代码中本地化 g++ 编译选项

java - 如何在 C 和 JAVA 中的 main() 之前执行特定功能?

C# 面板对接问题

javascript - __doPostBack 不是一个函数

android - Kotlin 调用 Java 平台类型导致 illegalStateException

java - 我在主线程中遇到异常......即使我正在处理异常

c# - 如何处理The type 'Foo' in 'File1.cs'与导入的type 'Foo' in 'File2.dll'警告