Java 異常處理

2018-01-19 18:20 更新

Java面向?qū)ο笤O(shè)計(jì) - Java異常處理


異常是在沒(méi)有定義正常執(zhí)行路徑時(shí)在Java程序的執(zhí)行期間可能出現(xiàn)的條件。

Java通過(guò)將執(zhí)行操作的代碼與處理錯(cuò)誤的代碼分離來(lái)處理錯(cuò)誤。

當(dāng)發(fā)生異常時(shí),Java會(huì)創(chuàng)建一個(gè)包含有關(guān)異常的所有信息的對(duì)象,并將其傳遞給相應(yīng)的異常處理代碼。

有關(guān)異常的信息包括異常的類(lèi)型,發(fā)生異常的代碼中的行號(hào)等。

try-catch塊

要處理異常,請(qǐng)將代碼放在try塊中。try塊如下所示:

try  {
    // Code for the try block
}

try塊以關(guān)鍵字try開(kāi)頭,后面是開(kāi)括號(hào)和結(jié)束括號(hào)。

try塊的代碼放在開(kāi)口和關(guān)閉大括號(hào)內(nèi)。

try塊本身不能使用。

它必須后跟一個(gè)或多個(gè)catch塊,或一個(gè)finally塊,或兩者的組合。

要處理可能在try塊中拋出的異常,請(qǐng)使用catch塊。

一個(gè)catch塊可用于處理多種類(lèi)型的異常。

catch塊的語(yǔ)法與方法的語(yǔ)法相似。

catch (ExceptionClassName parameterName)   {
    // Exception handling  code
}

catch塊的聲明就像一個(gè)方法聲明。

它從關(guān)鍵字catch開(kāi)始,后面跟一對(duì)括號(hào)。

在括號(hào)中,它聲明了一個(gè)參數(shù)。

參數(shù)類(lèi)型是應(yīng)該捕獲的異常類(lèi)的名稱。

parameterName是用戶給定的名稱。括號(hào)后面是開(kāi)口括號(hào)和結(jié)束括號(hào)。異常處理代碼放在大括號(hào)中。

當(dāng)拋出異常時(shí),異常對(duì)象的引用將復(fù)制到parameterName。

我們可以使用parameterName從異常對(duì)象中獲取信息。

我們可以將一個(gè)或多個(gè)catch塊與try塊關(guān)聯(lián)。

try-catch塊的一般語(yǔ)法如下。

try  {
    // Your code  that may throw  an  exception
}
catch  (ExceptionClass1 e1){
    // Handle  exception of  ExceptionClass1 type
}
catch  (ExceptionClass2 e2){
    // Handle  exception of  ExceptionClass2 type
}
catch  (ExceptionClass3 e3){
    // Handle  exception of  ExceptionClass3 type
}

例子

下面的代碼顯示了如何處理除零異常。

public class Main {
  public static void main(String[] args) {
    int x = 10, y = 0, z;
    try {
      z = x / y;
      System.out.println("z = " + z);
    } catch (ArithmeticException e) {
      String msg = e.getMessage();

      System.out.println("The error is: " + msg);
    }

    System.out.println("The end.");
  }
}

上面的代碼生成以下結(jié)果。



以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)