sha*_*pan 2 c# exception-handling exception
如果我想在整个应用程序中记录所有出现的异常,
我应该继承Exception类并抛出该类的所有异常,
其构造函数将记录错误详细信息..
或任何想法或建议???
根据应用程序的类型(ASP.NET/Console等),有不同的方法.
对于Windows Forms应用程序,这是要走的路: -
namespace YourNamespace
{
static class Program
{
[STAThread]
static void Main()
{
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
HandleException(e.Exception);
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
HandleException((Exception)e.ExceptionObject);
}
static void HandleException(Exception e)
{
//Handle the Exception here
}
}
}
Run Code Online (Sandbox Code Playgroud)
在ASP.NET中,您可以使用Global.asax中的Application_OnError事件或使用您自己的HttpModule连接到Application.OnError事件来捕获所有未处理的异常.
您还可以使用这些第三方异常处理程序之一.
ELMAH支持ASP.NET应用程序
http://code.google.com/p/elmah/
Exceptioneer(我们构建这个 - 只是标志着我对该领域的兴趣)支持ASP.NET,控制台应用程序,Windows窗体应用程序,WPF应用程序等.
| 归档时间: |
|
| 查看次数: |
518 次 |
| 最近记录: |