可以啊
if (flag==1) throws new myexection("hello world");public myexception : exception
{
public myexception(string msg)
{
Console.WriteLn(msg);
}
}
if (flag==1) throws new myexection("hello world");public myexception : exception
{
public myexception(string msg)
{
Console.WriteLn(msg);
}
}
谢谢!象以上语句,是代码运行之前可以先知的,比如说一些数据溢出等无法先知的系统错误,系统运行时能够自动引发自定义的错误处理类.
catch(Exception e)
{
throw new myexception("hello world");
}
public class ExceptionManager
{ #region Constructors
private ExceptionManager()
{
} #endregion
public static void Attach()
{
Application.ThreadException += new ThreadExceptionEventHandler(ExceptionManager.Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(ExceptionManager.AppDomain_UnhandledException);
}
public static void Detach()
{
Application.ThreadException -= new ThreadExceptionEventHandler(ExceptionManager.Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException -= new UnhandledExceptionEventHandler(ExceptionManager.AppDomain_UnhandledException);
} // ……
}
在 Application.Run 之前调用 Attach 方法,在之后调用 Detach 方法。要关闭 JIT 异常调试,请在配置文件中加入以下配置节:
<system.windows.forms jitDebugging="false" />以上示例仅用于 WinForm 应用程序。
ExceptionManager.AppDomain_UnhandledException
两个方法的代码,我没有提供。在这两个方法中,你就可以自已决定来如何处理未预计的异常了,当然也可再显示一个窗口,来告诉用户有未预计的异常发生了。并且可以像微软的 Windows 错误报告一样,在用户点击一个“发送错误报告”按钮时搜集异常信息(包括机器信息和其他状态信息)并发送到你公司的技术支持人员那里。但对于 AppDomain.CurrentDomain.UnhandledException 事件,其事件参数 UnhandledExceptionEventArgs 中有一个属性 IsTerminating。如果此值为 true,说明已发生了致命性异常错误,这时可能已不适合再显示一个错误报告窗口了,这种情况下我的做法是显示一个 MessageBox,同时将异常信息复制到系统剪贴板上,负责的用户可以从系统剪帖板上复制异常信息后再发送给公司的技术支持人员。不过,值得一提的是,我所使用的 MessageBox 是一个增强后的消息框,其中有一个特点:能够使用鼠标在消息框上选取和复制异常信息(一个只读文本框),而普通的消息框是不能这么操作的。这个 MessageBox 的增强实现方法来自以下文章:
http://msdn.microsoft.com/msdnmag/issues/02/11/CuttingEdge/
2. 在Global.asax.vb中Application_Error事件中加入
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
If Not Context Is Nothing And Context.IsCustomErrorEnabled Then
Server.Transfer("cerror.aspx", False)
End If
End Sub
3.在error.aspx.vb中加入
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)handles MyBase.Load
Dim ex As Exception = Server.GetLastError.GetBaseException
Label1.Text = ex.Message
End Sub
试一下!!!!!!你别忘了在你的异常的时候throw出来....