如何捕获未处理的异常?如果我的所有代码都包含在try catch
中?
但是一个异常发生了,应用程序崩溃了...也许有一些一般的建议?
使用:
try
{
...my code
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString(),"Error!",MessageBoxButton.OK);
}
示例代码不存在,因为有一个很大的代码并完成了许多事情...而且它看起来像某个地方发生了错误,但它在哪里是try-catch没有显示,而应用程序只是关闭...
添加:
var errorw = MessageBox.Show(e.ExceptionObject.ToString(), "error", MessageBoxButton.OK); e.Handled = true;
并且消息:参数不正确。
正如我们现在明白给出的参数在哪里和哪个参数不正确?顺便说一句,当你返回到应用程序的上一页时,忘记写下当你按Back时发生错误。
答案 0 :(得分:3)
// Code to execute on Unhandled Exceptions
private void Application_UnhandledException(object sender,ApplicationUnhandledExceptionEventArgs e)
{
if (e.ExceptionObject is QuitException)
return;
if (System.Diagnostics.Debugger.IsAttached)
{
// An unhandled exception has occurred; break into the debugger
System.Diagnostics.Debugger.Break();
}
//MessageBox.Show(e.ExceptionObject.ToString(), "Unexpected error", MessageBoxButton.OK);
var errorWin = new ErrorWindow(e.ExceptionObject, "An unexpected error has occurred. Please click Send to report the error details.")
{Title = "Unexpected Error"};
errorWin.Show();
//((PhoneApplicationFrame) RootVisual).Source = new Uri("/Views/ErrorWindow.xaml", UriKind.Relative);
e.Handled = true;
}
private class QuitException : Exception { }
public static void Quit()
{
throw new QuitException();
}
答案 1 :(得分:1)
总有手册。
答案 2 :(得分:1)
您是否尝试了StackTrace
的{{1}}属性。它显示了抛出异常的位置。
Exception
答案 3 :(得分:1)
确保在调试中构建应用程序,而不是在发布模式下构建应用程序。然后,转到VS Debug-Exceptions菜单并检查所有'Thrown'列是否已启用。之后,使用附加的调试器启动应用程序。 此外,您可以逐步执行代码。
答案 4 :(得分:0)
嘿伙计们,您可以使用BugSense库来捕获数据然后收集它们! PS。我是创始人之一
答案 5 :(得分:-2)
将您的代码放入Try-Catch Block。我也遇到了这样的问题,但后来由异常处理方法处理。
try
{
// your code
}
catch (Exception ex)
{
throw (ex);
}