W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
異常是在運行時在代碼序列中出現(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."); } }
此程序生成以下輸出:
一旦拋出異常,程序控制就會從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); } } }
上面的代碼生成以下結果。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: