当我想调试我的应用程序抛出异常,这意味着我需要禁用try-catch块这样的:更好的方式尝试赶上只在释放?
#if !DEBUG
try
{
#endif
// Do something
#if !DEBUG
}
catch (ArgumentException)
{
Console.WriteLine("Something wrong");
}
#endif
注:我知道在Visual Studio中的处理异常突破,但不足之处它是否在同一类型的每个异常中都被打破。 编辑来更改我的意思:例如,函数A和B都抛出NullReferenceException,但我只想检查A什么时候抛出它,但不是B(处理N中的NulRefExc已经是正确的)。
有人可能会问为什么我需要这个。通常我在没有调试的情况下运行ASP.NET MVC代码(但仍然在调试版本中,它有DEBUG变量),并且抛出异常真的很棒,而不是捕获它(当然仅在开发模式下),因为带有堆栈跟踪的错误页面将会显示,所以我们可以更快地跟踪错误。
有没有更清晰的方法来编写代码?
我不看怎么做这个(想象有一个方式)将使您免于“不利之处在于,它在每种相同类型的异常情况下都会中断,无论它发生在何处” – user5328504
您是否需要捕获全局异常?并且在它上面创建断点,您将在调试器中获得堆栈跟踪的完整异常。 – nyconing
Google [asp.net mvc global error handler](https://www.google.ca/search?q=asp+mvc+global+error+handler&oq=asp+mvc+global+e&aqs=chrome.1.69i57j0l5.7663j0j4&sourceid=chrome&ie = UTF-8) – CodingYoshi