各位聖誕快樂
通常講到Exception這一章節
都會說如何自訂Exception,並使用他
在大量濫用自訂Exception的情況下
很多自訂的Exception為了特殊狀況只會用到一次兩次
然後遇到新的不一樣的狀況,又寫了其他Exception
結果累積很多的Exception只為了一種特殊狀況
實在太繁瑣,以上是我自己遇過的開發經驗.......
其實可以不用這麼麻煩,只要知道原生的Exception是為了甚麼狀況而產生的
善加利用就不用自己寫那麼多Exception
首先先介紹幾個千萬不要丟出也不要cache的Exception
System.Exception
System.SystemException
System.ApplicationException
StackOverflowException
OutOfMemoryException
ComException
SEHException
ExecutionEngineException
以上是在執行環境發生的錯誤例外,所以不要寫在程式丟出
NullReferenceException
IndexOutOfRangeException
AccessViolationException
以上三個例外不建議丟出的原因,是建議用檢查的方式避開這些錯誤
接下來是介紹各種不同情況可以丟出甚麼Exception
物件狀態不正確時,丟出InvalidOperationException
ex: 開檔案發生錯誤時
傳入參數有問題時,丟出ArgmentException、ArgmentNullException or ArgmentOutOfRangeException
今天剛好遇到由Umbraco丟出ArgmentException的錯誤訊息
包括發生錯誤的原因
平安夜,祝大家平安聖誕快樂
掰~