《C#入门到精通》学习笔记 -- 实践: 自定义异常类的实现(2013-04-18)
来源:互联网 发布:常熟淘宝拍卖 编辑:程序博客网 时间:2024/06/06 15:45
namespace CustomizedExceptionClass{ class Program { static void Main(string[] args) { const string currentAccountId = "12345678"; try { LoginFunc(currentAccountId); } catch (UnMatchedTypeException e) { throw e; } catch(DuplicatedAccountIdExceptin e) { Console.Write(e); } } private static void LoginFunc(string account) { if(account.Length > 5) { throw new UnMatchedTypeException("AccountID can not be longer than 15 chars"); } if(account == "aaa") { throw new DuplicatedAccountIdExceptin("The account id is already exist."); } return; } } /// <summary> /// 自定义的异常类 /// </summary> internal class CustomizedExceptionClass : Exception { /// <summary> /// Initializes a new instance of the CustomizedExceptionClass class. /// </summary> public CustomizedExceptionClass() { } /// <summary> /// Initializes a new instance of the CustomizedExceptionClass class. Takes a message. /// </summary> /// <param name="message">Reason for the exception</param> public CustomizedExceptionClass(string message):base(message) { } /// <summary> /// Initializes a new instance of the CustomizedExceptionClass class. Used for chaining exceptions. /// </summary> /// <param name="message">Reason for the exception</param> /// <param name="innerException">Chained exception</param> public CustomizedExceptionClass(string message, Exception innerException) : base(message, innerException) { } /// <summary> /// Initializes a new instance of the CustomizedExceptionClass class. Used for serialization exceptions /// </summary> /// <param name="info">Serialization info</param> /// <param name="context">Streaming context</param> protected CustomizedExceptionClass( System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context) { } } /// <summary> /// 类型不匹配异常 /// </summary> class UnMatchedTypeException : CustomizedExceptionClass { public UnMatchedTypeException() { } public UnMatchedTypeException(string message) : base(message) { } } /// <summary> /// 用户ID重复异常 /// </summary> class DuplicatedAccountIdExceptin:CustomizedExceptionClass { public DuplicatedAccountIdExceptin() { } public DuplicatedAccountIdExceptin(string message) : base(message) { } }