Ant*_*ram 16
您希望继承System.Exception并优先提供(至少)相同的公共构造函数,并将参数传递给基础构造函数.添加您认为适合您特定需求的相关属性和/或方法.
public class MyException : System.Exception
{
public MyException() : base() { }
public MyException(string message) : base(message) { }
public MyException(string message, Exception innerException) : base(message, innerException) { }
}
Run Code Online (Sandbox Code Playgroud)
Den*_*nis 11
它实际上和Java一样 - 你扩展了Exception类.
以最基本的形式.
public class CustomException : System.Exception
{
public CustomException()
{
}
public CustomException(string message)
: base(message)
{
}
public CustomException(string message, System.Exception innerException)
: base(message, innerException)
{
}
}
Run Code Online (Sandbox Code Playgroud)
为此,然后使用字段或属性添加要捕获的数据.
出于兴趣,在回答这个问题之前,我检查了自定义异常的Microsoft Design Guildlines.设计自定义例外(MSDN)
ArgumentException.然而,不要从中衍生出来ApplicationException.它没有害处,这样做是没有意义的.关于ApplicationException的MSDN博客文章.ISerializable接口使异常可序列化.显然,异常必须是可序列化的,才能跨应用程序域和远程处理边界正常工作.我强烈建议您阅读MSDN上的设计指南.