iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 22
0
自我挑戰組

Framework 設計原則系列 第 22

Exception(3) - 如何使用原生的Exception

  • 分享至 

  • xImage
  •  

各位聖誕快樂

通常講到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

  1. 物件狀態不正確時,丟出InvalidOperationException
    ex: 開檔案發生錯誤時

  2. 傳入參數有問題時,丟出ArgmentExceptionArgmentNullException or ArgmentOutOfRangeException
    今天剛好遇到由Umbraco丟出ArgmentException的錯誤訊息
    包括發生錯誤的原因
    http://ithelp.ithome.com.tw/upload/images/20161226/200914854x9jnsW2Ls.png

平安夜,祝大家平安聖誕快樂

掰~


上一篇
Exception(2) - throw exception
下一篇
Exception(4) - 客制Exception設計原則
系列文
Framework 設計原則30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言