java異常處理機制原理
發布于:2019-08-28   作者:admin   瀏覽:43次

  異常就是在程序的運行過程中所發生的不正常的事件,它會中斷正在運行的程序,面對異常該怎么辦呢?通常情況下,java培訓會怎么樣處理呢?下面小編來為大家介紹一下吧。

java異常處理機制原理

  Java編程語言使用異常處理機制為程序提供了錯誤處理的能力異常處理機制拋抓模型

  運行的代碼先拋出異常:放在try{}塊中

  然后捕獲抓取異常:catch(異常類型異常對象)

  最后再進行異常處理:catch{}塊中進行處理

  Java異常處理機制

  Java中如何進行異常處理

  Java的異常處理是通過5個關鍵字來實現的:

  try執行可能產生、catch捕獲異常、finally無論是否發生異常,代碼總能執行、throw手動/顯式、throws拋出異常

  示例:

  publicvoidmethod(){

  try{

  //代碼段1

  //產生異常的代碼段2

  //代碼段3

  }catch(異常類型ex){

  //對異常進行處理的代碼段4

  }//

  代碼段5

  }finally{

  //無論是否有異常都會執行的代碼段6

  }

  try-catch異常處理流程

  異常是一種特殊的對象,類型為java.lang.Exception或其子類發生異常printStackTrace的堆棧跟蹤功能顯示出程序運行到當前類的執行流程

  java.util.InputMismatchException//異常類型

  atjava.util.Scanner.throwFor(Scanner.java:840)//異常堆棧信息

  atjava.util.Scanner.next(Scanner.java:1461)//在此方法中拋出了異常

  atjava.util.Scanner.nextInt(Scanner.java:2091)

  atjava.util.Scanner.nextInt(Scanner.java:2050)

  atcn.jbit.exception.Test3.main(Test3.java:15)//出現異常的位置

  在catch塊中處理異常,可以加入用戶自定義處理信息,通過調用異常對象的方法輸出異常信息:

  e.printStackTrace();

  System.err.println("出現錯誤:被除數和除數必須是整數,"+"除數不能為零。");

  voidprintStackTrace()輸出異常的堆棧信息

  StringgetMessage()返回異常信息描述字符串,是printStackTrace()輸出信息的一部分

  在try-catch塊后加入finally塊,可以確保無論是否發生異常,finally塊中的代碼總能被執行

  注意:如果代碼塊中加入了System.exit(1);

  強制終止程序執行語句,finally塊不會執行

  publicclassTest4{

  publicstaticvoidmain(String[]args){

  try{

  Scannerin=newScanner(System.in);

  System.out.print("請輸入被除數:");

  intnum1=in.nextInt();

  System.out.print("請輸入除數:");

  intnum2=in.nextInt();

  System.out.println(String.format("%d/%d=%d",

  num1,num2,num1/num2));

  }catch(Exceptione){

  System.err.println(“出現錯誤:被除數和除數必須是整數,"

  +"除數不能為零。");

  System.out.println(e.getMessage());

  }finally{

  System.out.println("感謝使用本程序!");

  }

  }

  }

  程序中預先想好了對付異常的處理辦法,如果程序運行異常!則開始對異常進行處理,處理完畢,程序繼續運行,這就是java培訓介紹的java異常處理機制的原理。