c# 學習筆記07 – 例外處理

JAVA 和 c# 的例外處理機制非常的類似,也是使用 try catch finally throw這幾個關鍵字來處理例外,而 c# 沒有 throws 這個關鍵字,所以例外不像 java 在例外沒有 try catch 時,要使用 throws 在宣告 method 時宣告 throws。

基本的例外處理格式如下:

try {
    //...
}
catch (ExcepType1 ob1) {
    //...
}
catch (ExcepType2 ob2) {
}

最後可以再加上 finally 區塊,功能和 java 的一樣,不管 try {} 中的程式執行的如何,都會執行 finally 區塊中的程式碼。throw 使用的方式如下:

throw exceOb;

自行製作新的 Exception 時,只要繼承 ApplicationException 這個類別就可以了。

catch 有幾種不同的型式:

catch {
}

catch (ExcepA) {
}


catch (ExcepA  ex) {
}

第一種型式,會抓取所有的例外情況,就等同於使用 catch (Exception) {} 的情形。
第二種型式,會抓取符合型別的例外,也會抓取符合型別的衍生型別的例外情形,因為在 catch 中不會使用到 ExcepA 的物件,所以之後不用接上變數名稱。
第三種型式,類似第二種,但是會加上了變數名稱。

c# 比較特別的地方是有 checked 和 unchecked 關鍵字,可以檢查運算式是否有 overflow 的情形。使用方式如下:

checked (expr)

checked {
    expr....
    //...
}

若發在 overflow 會丟出 OverflowException 出來,而在 unchecked 中所包的運算式,在有 overflow 情形發生的,不會丟出 Exception,數值會直接發生截斷(truncation)。

廣告

One Response to c# 學習筆記07 – 例外處理

  1. Change 說道:

    C#跟java 90%以上都很相似
    相信你很快就會了
    你java這麼強~

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: