久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 學習資源 > 講師博文 > java異常處理機制原(yuan)理

java異(yi)常(chang)處理(li)(li)機制(zhi)原(yuan)理(li)(li) 時(shi)間:2018-04-03      來(lai)源(yuan):未(wei)知

異常就是(shi)在(zai)程序的(de)運行(xing)(xing)過程中所發生(sheng)的(de)不正常的(de)事(shi)件, 它會中斷正在(zai)運行(xing)(xing)的(de)程序,面(mian)對異常該怎(zen)么辦呢?通(tong)常情況下, 我們會這樣處理:

Java編程語言使用(yong)異常(chang)處(chu)理機(ji)制為程序提(ti)供了錯誤處(chu)理的能力異常(chang)處(chu)理機(ji)制拋(pao)抓模型

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

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

最后再(zai)進行(xing)異(yi)常處(chu)理(li)(li): catch{}塊中進行(xing)處(chu)理(li)(li)

Java異常處理機制

Java中如何(he)進行異常處理

Java的異常(chang)處理是(shi)通過5個關(guan)鍵(jian)字來(lai)實現的:

try執(zhi)行可能產生、 catch捕(bu)獲異(yi)(yi)常(chang)、 finally無(wu)論是否發(fa)生異(yi)(yi)常(chang),代(dai)碼總(zong)能執(zhi)行、 throw手動(dong)/顯式、 throws拋(pao)出異(yi)(yi)常(chang)

示例:

public void method(){

try {

// 代碼(ma)段 1

// 產生(sheng)異常的代碼段 2

// 代碼段 3

} catch (異常類(lei)型(xing) ex) {

// 對異(yi)常進行處(chu)理的代(dai)碼段4

}//

代碼段5

}finally{

//無論是否有異常都(dou)會執(zhi)行的(de)代碼段6

}

try-catch異常處理流(liu)程(cheng)

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

java.util.InputMismatchException //異(yi)常類型(xing)

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

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

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

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

at cn.jbit.exception.Test3.main(Test3.java:15)// 出現(xian)異(yi)常的位置

在catch塊(kuai)中處理異常(chang),可以加入(ru)用戶自(zi)定(ding)義處理信息(xi)(xi),通(tong)過調用異常(chang)對象的方法輸出異常(chang)信息(xi)(xi):

e.printStackTrace();

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

void printStackTrace()輸出(chu)異常的堆(dui)棧信息

String getMessage()返回異常(chang)信(xin)息描(miao)述字(zi)符串,是printStackTrace()輸出信(xin)息的一(yi)部分

方 法 名 說 明
Exception 異常層次結構的根類
ArithmeticException 算術錯誤情形, 如以零作除數
ArrayIndexOutOfBoundsE
xception
數組下標越界
NullPointerException 嘗試訪問 null 對象成員
ClassNotFoundException 不能加載所需的類
InputMismatchException 欲得到數據類型與實際輸入類型不匹配
IllegalArgumentException 方法接收到非法參數
ClassCastException 對象強制類型轉換出錯
NumberFormatException 數字格式轉換異常, 如把"abc"轉換成
數字

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

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

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

public class Test4 {

public static void main(String[] args) {

try {

Scanner in = new Scanner(System.in);

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

int num1 = in.nextInt();

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

int num2 = in.nextInt();

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

num1, num2, num1/ num2));

} catch (Exception e) {

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

+"除(chu)數(shu)不能為零。 ");

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

} finally {

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

}

}

}

程(cheng)序中預先想好了對(dui)付異常(chang)的(de)處理(li)辦法,如果程(cheng)序運行(xing)異常(chang)!則開(kai)始(shi)對(dui)異常(chang)進行(xing)處理(li),處理(li)完(wan)畢,程(cheng)序繼續運行(xing),這就是java異常(chang)處理(li)機制的(de)原理(li),希望讀完(wan)該文章(zhang)能(neng)對(dui)你有(you)所幫助。

上一篇:Linux內核中的數據結構的一點認識

下一篇:三層架構實現Java Web案例

戳我(wo)查看嵌入式每月就(jiu)業風(feng)云榜

點我了解華清遠見高校學(xue)霸學(xue)習秘籍

猜你關心企業是如何評價華(hua)清學員的

干貨分享
相關新聞
前臺專線(xian):010-82525158 企(qi)業培訓洽談專線:010-82525379 院(yuan)校合作洽談專線:010-82525379 Copyright © 2004-2024 北京華清遠見科技發展有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部