【发布时间】:2010-10-04 04:00:02
【问题描述】:
你好,谁能告诉我如何用 C# 编写用户定义的异常?就像我们在 Java 中一样,我们可以用 C# 编写吗?
【问题讨论】:
你好,谁能告诉我如何用 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) { }
}
【讨论】:
它实际上与 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)
{
}
}
为此,然后使用字段或属性添加要捕获的数据。
出于兴趣,在回答这个问题之前,我检查了 Microsoft Design Guildlines on Custom Exceptions。 Designing Custom Exceptions (MSDN)
ArgumentException。 但是不要派生自ApplicationException。它没有害处,这样做是没有意义的。 MSDN Blog Post on ApplicationException。ISerializable 接口使异常可序列化。显然,异常必须可序列化才能跨应用程序域和远程边界正常工作。我强烈推荐阅读 MSDN 上的 Design Guidelines。
【讨论】: