首先,我运行我的应用程序,并在出现任何错误(已处理或未处理)时抛出异常。
其次,我使用 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/