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)
{
}
}
《C#入门到精通》学习笔记 -- 实践: 自定义异常类的实现(2013-04-18)
最新推荐文章于 2022-05-12 22:42:00 发布