[C#.NET] 使用自訂例外 Exception
在多數情況下,BCL 預設的 Exception 就夠用了,但有時候我們還是必須要自訂 Exception,若需要自訂 Exception,我們可以參考 MSDN 的建議
在 VS 裡面有 IntelliSense,輸入 ex 就會跳出 IntelliSense 提示選單,如下圖
選擇 Exception 後按下 Tab 鍵,就會自動產生以下片斷程式碼
假設要自訂 Message 格式,可以複寫 Message 方法
{ get { if (this.Code == null) { return base.Message; } else { return string.Format("Code:{0}, Message:{1}", this.Code, base.Message); } } }
效果看起來如下圖:
完整的程式碼看起來就像這樣
public class ModbusException : Exception { public virtual byte? Code { get; set; } public ModbusException() { } public ModbusException(string message, byte? Code) : base(message) { this.Code = Code; } public ModbusException(string message) : base(message) { } public ModbusException(string message, Exception inner) : base(message, inner) { } protected ModbusException(SerializationInfo info, StreamingContext context) : base(info, context) { } public override string Message { get { if (this.Code == null) { return base.Message; } else { return string.Format("Code:{0}, Message:{1}", this.Code, base.Message); } } } }
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET