【C# Skills】04 - Exception Handling 錯誤處理

錯誤處理,在程式中也是很重要的一環
最基本的,都會對輸入的參數做檢查。這屬於邏輯判斷層面可以處理的錯誤。
但百密一疏,當有非預期的錯誤發生,程式無會直接當掉。
為了避免這種狀況,應將可能發生問題的程式包入try-catch 中,並進一步處理錯誤

try

將需要進行例外處理的程式碼寫在這個區塊內

catch

進行例外處理的區塊。一個try 可以定義多個catch,try 區塊內可以丟出不同的Exception 以對應到不同的catch 區塊進行不同處理。

catch 會依照程式寫的順序捕捉例外狀況,故需要捕捉多種Exception 時,要把衍生的Exception 類別寫在前面,基底的Exception 寫在最後面,否則會抓不到其他Exception。

finally

當try-catch 執行完畢後就會進入這個區塊,用來釋放資源。例如:在try 裡面開啟了一個檔案,發生例外時不會正常關閉檔案而進入catch進而造成資源被咬住。故需要在finally 釋放資源。

throw

如果在程式進行中想要自行定義丟出 Exception,可以使用這個關鍵字並決定要丟出的Exception 種類。

另外try-catch 只會在捕捉到例外狀況時產生效能問題,所以可以放心使用。
而後續更進階的作法是:利用內建或自己定義的Exception,讓引用方法的人可以更明確的知道,並撰寫各種錯誤情形的相對處理邏輯

如有理解錯誤,敬請指教

References:
https://www.tutorialspoint.com/csharp/csharp_exception_handling.htm
Try Catch Block是否會影響效能?-黑暗執行緒 (darkthread.net)