创建自定义异常应该从ApplicationException 类派生而来.应该有一个Exception结尾的类名,应该定义3个构造函数:
一个默认构造函数,
一个接收字符串(错误消息)构造函数,
一个接收字符串参数和异常参数(错误消息和内部异常对象)的构造函数.
例子:
msdn
C#
public class NewException :ApplicationException, ISerializable
{
public NewException()
{
// Add implementation.
}
public NewException(string message)
{
// Add implementation.
}
public NewException(string message, Exception inner)
{
// Add implementation.
}
// This constructor is needed for serialization.
protected NewException(SerializationInfo info, StreamingContext context)
{
// Add implementation.
}
}
异常处理的最好方法:
一:不要:
1.catch异常后re_throw.
2.通过抛出异常来控制代码的执行.
3.在构造函数入口出添加try-catch,
4.使用了try-catch,但并没处理异常.
5.MessageBox.Show(exception.ToString());
二,需要:
1.从始至终要紧记异常处理的策略.
2.在应用程序的所有入口处使用try-catch
3.处理所有意料到的异常
4.显示友好的消息,并提供适当的管理员联系方式
5.抛出的异常尽可能详细.(使用多个catch块)
多线程:
1.编写多线程代码时,必须考虑在工作线程中出现的异常
2.在线程的入口使用try-catch
3.使用delgate或其他的方法将发生的异常通知主线程.