Java try的意思

在Java程式語言中,try關鍵字用於異常處理結構的一部分。它標誌著 try-catch 或 try-with-resources 語句的開始,用於捕獲和處理代碼塊中可能拋出的異常。

try 塊後面通常跟著一個或多個 catch 塊,用於處理不同類型的異常。如果 try 塊中發生了異常,Java 虛擬機會尋找與之匹配的 catch 塊來處理該異常。如果沒有匹配的 catch 塊,異常會繼續向上拋出,直到被處理或程式終止。

例如:

try {
    // 可能拋出異常的代碼
    int number = Integer.parseInt("123");
    System.out.println(number);
} catch (NumberFormatException e) {
    // 處理 NumberFormatException 的代碼
    System.err.println("輸入的字元串無法轉換為數字:" + e.getMessage());
} catch (Exception e) {
    // 處理其他異常的代碼
    System.err.println("未知異常發生:" + e.getMessage());
}

在上面的例子中,try 塊中包含了可能拋出 NumberFormatException 的代碼。如果有異常發生,它會進入相應的 catch 塊進行處理。

從Java 7開始,Java還引入了 try-with-resources 語句,它提供了一種自動關閉資源的方法。在 try 塊中聲明的資源(如 InputStreamSocket 等)會在 finally 塊中自動關閉,即使 try 塊中沒有發生異常。

例如:

try (InputStream input = new FileInputStream("example.txt")) {
    // 使用 input 進行讀操作
    int data = input.read();
    while (data != -1) {
        System.out.print((char) data);
        data = input.read();
    }
} catch (IOException e) {
    // 處理 IO 異常的代碼
    System.err.println("讀取檔案時發生異常:" + e.getMessage());
}

在這個例子中,try 塊後面跟著一個 catch 塊,用於處理可能發生的 IOExceptiontry 塊中聲明的 InputStream 資源會在 try-with-resources 語句結束時自動關閉。