开发者

How to write User Defined exceptions in C#?

开发者 https://www.devze.com 2023-01-19 01:42 出处:网络
hi can any one tell me 开发者_JAVA技巧how to write user defined exceptions in C#?As we have in Java can we write in C#?You want to inherit from System.Exception and preferrably provide (at minimum) th

hi can any one tell me 开发者_JAVA技巧how to write user defined exceptions in C#?As we have in Java can we write in C#?


You want to inherit from System.Exception and preferrably provide (at minimum) the same public constructors and pass the parameters on to the base constructors. Add the relevant properties and/or methods you deem appropriate for your particular need.

public class MyException : System.Exception
{
     public MyException() : base() { }
     public MyException(string message) : base(message) { }
     public MyException(string message, Exception innerException) : base(message, innerException) { }
} 


It is practically the same as it is in Java - you extend the Exception class.

In the most basic form.

public class CustomException : System.Exception
{
  public CustomException()
  {
  }

  public CustomException(string message)
    : base(message)
  {
  }

  public CustomException(string message, System.Exception innerException)
    : base(message, innerException)
  {
  }
}

To this, then add the data that you want to capture using either fields or properties.

Out of interest, before answering this question, I checked the Microsoft Design Guildlines on Custom Exceptions. Designing Custom Exceptions (MSDN)

  1. Avoid deep namespace hierarchies.
  2. If possible, derive from one the provided common base exceptions, i.e., ArgumentException. HOWEVER Do not derive from ApplicationException. It is not harmful, it is no point in doing so. MSDN Blog Post on ApplicationException.
  3. Use the "Exception" suffix.
  4. Make exceptions serializable by implementing the ISerializable interface. Apparently an exception must be serializable to work correctly across application domain and remoting boundaries.
  5. Store security-sensitive information in a private exception state, add a SecurityPermission attribute to ensure that only trusted code can get the information.

I highly recommend reading the Design Guidelines on MSDN.

0

精彩评论

暂无评论...
验证码 换一张
取 消