首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 例外處理:try-catch-finally、catch 排序規則、自訂例外、無 checked 例外差異

     編輯:關於C語言

基本結構


try
{
    // 可能拋出例外的程式碼
}
catch (FileNotFoundException fe)
{
    // 具體例外優先
}
catch (IOException ioe)
{
    // 較一般例外
}
catch
{
    // 捕獲所有其他例外
}
finally
{
    // 無論是否例外皆執行,常用於釋放資源
}

關鍵差異:catch 排序強制性

  • C# 強制 catch 區塊依繼承層級由具體到一般排序
  • Java 編譯器不強制,執行期才決定

無參數 catch

catch { } 等同 catch (Exception) { },捕獲所有例外。

自訂例外類別


public class InvalidDepartmentException : System.Exception
{
    public InvalidDepartmentException(string department)
        : base("Invalid Department: " + department) { }
}

拋出自訂例外


if (!(dept == "Sales" || dept == "Marketing"))
    throw new InvalidDepartmentException(dept);

C# 無 checked 例外

Java 用 throws 聲明方法可能拋出的受檢例外,強制呼叫端處理。C# 移除此機制,所有例外均為 unchecked,提高靈活性但需開發者自行文檔化。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved