你好,有人能告诉我如何在C#中编写自定义异常吗?和Java一样,C#也可以编写吗?
您想继承自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) { }
}
Exception
类。在最基本的形式中。public class CustomException : System.Exception
{
public CustomException()
{
}
public CustomException(string message)
: base(message)
{
}
public CustomException(string message, System.Exception innerException)
: base(message, innerException)
{
}
}
然后,使用字段或属性添加要捕获的数据。
在回答这个问题之前,我查看了 Microsoft Design Guildlines 上关于自定义异常的内容。设计自定义异常(MSDN)
ArgumentException
。 但是不要从ApplicationException
派生。派生它没有任何意义,也不会有害。关于ApplicationException的MSDN博客文章。ISerializable
接口使异常可序列化。显然,异常必须是可序列化的,才能正确地跨应用程序域和远程边界工作。我强烈建议阅读MSDN上的设计指南。