在Java中,可以使用try-catch
語句來捕獲和處理異常。下面是使用Java拋出和捕獲異常的一般步驟:
try
關鍵字標記希望捕獲異常的代碼塊。try
代碼塊內,如果發生異常,可以使用throw
關鍵字手動拋出異常。try
代碼塊后面,使用catch
關鍵字定義一個或多個catch
塊,用于捕獲和處理特定類型的異常。catch
塊內,可以使用e.printStackTrace()
語句打印異常堆棧信息,或者進行其他異常處理操作。finally
關鍵字定義一個finally
塊。無論是否發生異常,finally
塊中的代碼都會被執行。以下是一個簡單的示例,演示了如何拋出和捕獲異常:
public class ExceptionExample {
public static void main(String[] args) {
try {
int result = divide(10, 0);
System.out.println("Result: " + result);
} catch (ArithmeticException e) {
System.out.println("Error: " + e.getMessage());
} finally {
System.out.println("Finally block always executed.");
}
}
public static int divide(int num1, int num2) {
if (num2 == 0) {
throw new ArithmeticException("Cannot divide by zero.");
}
return num1 / num2;
}
}
在上面的示例中,divide()
方法會檢查除數是否為零。如果是零,它會使用throw
關鍵字手動拋出一個ArithmeticException
異常。在main()
方法中,我們使用try-catch
語句捕獲這個異常,并輸出錯誤消息。無論是否發生異常,finally
塊中的代碼都會被執行,并打印一條信息。
當運行上述代碼時,將輸出以下內容:
Error: Cannot divide by zero.
Finally block always executed.
注意:在捕獲異常時,應該將具體的異常類型放在前面的catch
塊中,將通用的異常類型放在后面的catch
塊中。這是因為Java的異常處理是按照順序進行的,一旦捕獲到匹配的異常類型,后續的catch
塊將不會再被執行。