共计 1167 个字符,预计需要 3 分钟阅读。
知识普及-What is 异常?
异常指的是在程序运行过程中发生的异常事件,通常是由外部问题(如硬件错误、输入错误)所导致的。在Java等面向对象的编程语言中异常属于对象。 在C#中异常有专门的类——System.Exception
,其它的异常(如IOException
、FileLoadException
)都从其派生。
SO……如何处理
这时我们就要请出——try
{
}
catch
{
}
finally
{
}
可是异常处处可以发生((⊙﹏⊙)),总不能处处写try…catch吧。请继续往下看。
方法一——暴力
直接把Main函数整个扩上try…catchtry
{
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Load());
}
catch
{
//输出信息
}
方法二——理智
发现Application
类中有此事件ThreadException
:-P 这不正是我们想要的吗?
Application.ThreadException += Application_ThreadException;
//写在Main方法开头
Application_ThreadException
方法如下
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
BugReports b = new BugReports(e.Exception);
b.ShowDialog();
}
方法三——完全
再加上多线程捕获Application.ThreadException += Application_ThreadException;
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
//写在Main方法开头
//UI线程异常
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
BugReports b = new BugReports(e.Exception);
b.ShowDialog();
}
//多线程异常
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
BugReports b = new BugReports((Exception)e.ExceptionObject);
b.ShowDialog();
}
妈妈再也不用担心出现异常了!
正文完