Java 異常

2018-02-20 01:13 更新

Java教程 - Java異常


異常是在運行時在代碼序列中出現(xiàn)的異常狀況。例如,讀取一個不存在的文件。

Java異常是描述異常條件的對象發(fā)生在一段代碼中。

關鍵詞

Java異常處理通過五個關鍵字管理: try,catch,throw,throws和finally。

try block包含要監(jiān)視的程序語句異常。

如果在塊中發(fā)生異常,則拋出異常。

catch 語句可以捕獲異常并以合理的方式處理它。

要手動拋出異常,請使用關鍵字throw。

任何拋出的異常一個方法必須由一個 throws 子句指定。

任何代碼絕對必須是在try塊完成之后執(zhí)行的命令被放在 finally 塊中。


語法

要處理一個異常,我們把可能有的代碼在try ... catch語句中的異常。

try { 
// block of code to monitor for errors 
} 
catch (ExceptionType1 exOb) { 
// exception handler for ExceptionType1 
}
catch (ExceptionType2 exOb) { 
// exception handler for ExceptionType2 
}

可能有異常的程序語句包含在 try 塊中。異常處理程序使用 catch 語句進行編碼。

這里, ExceptionType 是發(fā)生的異常的類型。


例子

在try塊和catch子句中封裝要監(jiān)視的代碼。

下面的程序包括一個try塊和一個catch子句處理由除法生成的ArithmeticException錯誤:

public class Main {
  public static void main(String args[]) {
    int d, a;
    try { // monitor a block of code.
      d = 0;
      a = 42 / d;
      System.out.println("This will not be printed.");
    } catch (ArithmeticException e) { // catch divide-by-zero error
      System.out.println("Division by zero.");
    }
    System.out.println("After catch statement.");
  }
}

此程序生成以下輸出:

例2

一旦拋出異常,程序控制就會從try塊轉移到catch塊中。執(zhí)行從未從catch返回到try塊。

以下代碼處理異常并繼續(xù)。

import java.util.Random;

public class Main {
  public static void main(String args[]) {
    int a = 0, b = 0, c = 0;
    Random r = new Random();
    for (int i = 0; i < 32000; i++) {
      try {
        b = r.nextInt();
        c = r.nextInt();
        a = 12345 / (b / c);
      } catch (ArithmeticException e) {
        System.out.println("Division by zero.");
        a = 0; // set a to zero and continue
      }
      System.out.println("a: " + a);
    }
  }
}

上面的代碼生成以下結果。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號