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 ...."); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:try1.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2013 年 6 月 */
編譯執行,結果如下
此例的 catch 沒有接任何參數 (parameter) ,表示任何例外 (exception) 都會處理
catch {
也可用多個 catch 限定處理例外的類別 (class) ,我們將上例增加一個 catch 如下
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 ...."); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:try1.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2013 年 6 月 */
編譯執行,結果如下
這樣一來,最後沒有參數的 catch 就變成處理以上皆非的情況。
finally 則是無論例外是否發生都會執行的部份,例如
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 ...."); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:try3.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2013 年 6 月 */
編譯執行,結果如下
中英文術語對照 | |
---|---|
例外處理 | exception handling |
關鍵字 | keyword |
參數 | parameter |
例外 | exception |
類別 | class |
您可以繼續參考
例外處理
相關目錄
回 C# 快速導覽
回 C# 教材
回首頁
參考資料
Standard ECMA-334 C# Language Specification
msdn: 例外處理陳述式 (C# 參考)
沒有留言:
張貼留言