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# 參考)
沒有留言:
張貼留言