1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Demo { static void Main() { try { object o2 = null ; int i2 = ( int ) o2; System.Console.WriteLine(o2); System.Console.WriteLine(i2); } catch { System.Console.WriteLine( "something wrong" ); } System.Console.WriteLine( "After try ...." ); } } /* 《程式語言教學誌》的範例程式 檔名:try1.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2013 年 6 月 */ |
編譯執行,結果如下

此例的 catch 沒有接任何參數 (parameter) ,表示任何例外 (exception) 都會處理
9 | catch { |
也可用多個 catch 限定處理例外的類別 (class) ,我們將上例增加一個 catch 如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | class Demo { static void Main() { try { object o2 = null ; int i2 = ( int ) o2; System.Console.WriteLine(o2); System.Console.WriteLine(i2); } catch (System.NullReferenceException e) { System.Console.WriteLine(e.ToString().Substring(0, 29)); } catch { System.Console.WriteLine( "something wrong" ); } System.Console.WriteLine( "After try ...." ); } } /* 《程式語言教學誌》的範例程式 檔名:try1.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2013 年 6 月 */ |
編譯執行,結果如下

這樣一來,最後沒有參數的 catch 就變成處理以上皆非的情況。
finally 則是無論例外是否發生都會執行的部份,例如
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | class Demo { static void Main() { try { object o2 = null ; int i2 = ( int ) o2; System.Console.WriteLine(o2); System.Console.WriteLine(i2); } catch (System.NullReferenceException e) { System.Console.WriteLine(e.ToString().Substring(0, 29)); } catch { System.Console.WriteLine( "something wrong" ); } finally { System.Console.WriteLine( "finally" ); } System.Console.WriteLine( "After try ...." ); } } /* 《程式語言教學誌》的範例程式 檔名:try3.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2013 年 6 月 */ |
編譯執行,結果如下

中英文術語對照 | |
---|---|
例外處理 | exception handling |
關鍵字 | keyword |
參數 | parameter |
例外 | exception |
類別 | class |
您可以繼續參考
例外處理
相關目錄
回 C# 快速導覽
回 C# 教材
回首頁
參考資料
Standard ECMA-334 C# Language Specification
msdn: 例外處理陳述式 (C# 參考)
沒有留言:
張貼留言