溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中異常、異常分類、異常防護(hù)分別是什么

發(fā)布時(shí)間:2021-06-18 10:25:16 來源:億速云 閱讀:166 作者:chen 欄目:編程語言

這篇文章主要介紹“Java中異常、異常分類、異常防護(hù)分別是什么”,在日常操作中,相信很多人在Java中異常、異常分類、異常防護(hù)分別是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”Java中異常、異常分類、異常防護(hù)分別是什么”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

一、異常

(一)什么是異常

在我們現(xiàn)實(shí)生活中,例如感冒發(fā)燒、電腦突然出現(xiàn)藍(lán)屏等,在程序中也會(huì)出現(xiàn)不正常的情況,例如磁盤不足、網(wǎng)絡(luò)中斷等,像我們手機(jī)有時(shí)候微信會(huì)出現(xiàn)彈窗提示無法響應(yīng)。在程序執(zhí)行中,任何中斷正常程序運(yùn)行就是異常。

(二)java中引起異常因素

第一種,Java 虛擬機(jī)檢測到不正常的運(yùn)行,這些狀態(tài)可能是由以下幾種情況引起的:

1.表達(dá)式算數(shù)異常,例如3被0整數(shù)。

2.在載入程序時(shí)出現(xiàn)錯(cuò)誤。

3.超出某些限制資源,例如使用的內(nèi)存空間太多了。

第二種,Java代碼中的throw 語句被運(yùn)行。

第三種,異步異常,這個(gè)異常可能的原因是

1.thread 的stop 方法被執(zhí)行。

2.Java 虛擬機(jī)內(nèi)部出現(xiàn)錯(cuò)誤。

(三)java處理異常有兩種方式捕獲異常和拋出異常

1.捕獲異常:當(dāng)明確知道怎么去處理這些異常時(shí),采取捕獲的方式進(jìn)行處理。

2.拋出異常:當(dāng)不知道怎么去處理這些異常時(shí),采取拋出的方式進(jìn)行處理。

(四)異常例子

例如:

public class p34 { public static void main(String[] args) {         // TODO Auto-generated method stub         int result=div(6,0);//調(diào)用div()方法         System.out.println(result); } //此方法實(shí)現(xiàn)兩個(gè)整數(shù)相除 public static int div(int a,int b){         int result=a/b;//定義一個(gè)int類型變量result,保存兩個(gè)數(shù)相除結(jié)果         return result;//結(jié)果返回值   } }

運(yùn)行的結(jié)果是:

Java中異常、異常分類、異常防護(hù)分別是什么

我們從上面的運(yùn)行結(jié)果可以看到j(luò)ava.lang.ArithmeticException,這個(gè)異常是調(diào)用div()方法傳入了0,在運(yùn)算時(shí)出現(xiàn)錯(cuò)誤,因?yàn)槭潜?整除。在Java運(yùn)行時(shí)系統(tǒng)找不到可以捕獲異常的方法,就會(huì)運(yùn)行時(shí)系統(tǒng)將終止,相應(yīng)的Java程序也將退出。

二、異常分類

Object是所有類的父類或基類,Throwable類分別由兩個(gè)子類Error和Exception。Error表示的是產(chǎn)生的錯(cuò)誤,Exception表示產(chǎn)生的異常。

Java中異常、異常分類、異常防護(hù)分別是什么

Error類表示錯(cuò)誤類,表示在程序在運(yùn)行產(chǎn)生系統(tǒng)出現(xiàn)錯(cuò)誤或超出某些限制資源,這種情況是如果改程序本身是不能恢復(fù)的運(yùn)行的。

Exception類表示異常類,表示本身可以處理錯(cuò)誤,在開發(fā)程序中進(jìn)行異常處理,針對(duì)它的子類。

Throwable類常用方法

String getMessage()方法是返回Throwable詳細(xì)信息字符串

Void printStackTrace()方法是把 Throwable 及其追蹤輸出至標(biāo)準(zhǔn)錯(cuò)誤流。

Void printStackTrace()方法是把 Throwable 及其追蹤輸出到指定輸出流。

三、try...catch語句

1.如果Java運(yùn)行時(shí)系統(tǒng)找不到可以捕獲異常的方法,則運(yùn)行時(shí)系統(tǒng)將終止,相應(yīng)的Java程序也將退出。解決這個(gè)問題使用一種異常進(jìn)行的處理方式是異常處理。

2.異常捕獲語法

try  {  //可能發(fā)生異常的代碼塊;  }  catch(異常類型  異常的對(duì)象名)//捕獲并處理異常 { //異常處理代碼塊;  }

3.使用try...catch語句例子

public class p35 { public static void main(String[] args) {         // TODO Auto-generated method stub         //定義一個(gè)try...catch語句捕獲異常         try{             int result=div(6,0);//調(diào)用div()方法             System.out.println(result);         }catch(Exception e){//捕獲并處理異常             System.out.println("捕獲異常信息為"+e.getMessage());         }         System.out.println("程序繼續(xù)向下執(zhí)行"); } //此方法實(shí)現(xiàn)兩個(gè)整數(shù)相除         public static int div(int a,int b){             int result=a/b;//定義一個(gè)int類型變量result,保存兩個(gè)數(shù)相除結(jié)果             return result;//結(jié)果返回值         } }

運(yùn)行的結(jié)果是:

Java中異常、異常分類、異常防護(hù)分別是什么

從上面代碼中,try代碼塊是可能發(fā)生異常的代碼塊,發(fā)生被0整除,接著運(yùn)行catch代碼調(diào)用Exception對(duì)象的getMessage()方法,返回異常信息/  by zero。處理完后繼續(xù)往下執(zhí)行。

四、總結(jié)

本文主要介紹了異常、異常分類、try...catch語句。

異常是在程序執(zhí)行中,任何中斷正常程序運(yùn)行就是異常。介紹了引起異常的因素,java處理異常有兩種方式捕獲異常和拋出異常,使用異常的例子來幫助理解什么是異常。

異常分類Object是所有類的父類或基類,Throwable類分別由兩個(gè)子類Error和Exception。介紹了Throwable類常用方法。

當(dāng)Java運(yùn)行時(shí)系統(tǒng)找不到可以捕獲異常的方法,則運(yùn)行時(shí)系統(tǒng)將終止,相應(yīng)的Java程序也將退出,使用try...catch語句解決這個(gè)問題。

到此,關(guān)于“Java中異常、異常分類、異常防護(hù)分別是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI