這篇文章將為大家詳細講解有關異常在java中的應用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、什么是異常
異常就是程序運行過程中所出現(xiàn)的不正常現(xiàn)象。
try:把可能發(fā)生異常的代碼包起來,當發(fā)生異常時,將異常拋出
catch:捕獲異常并處理
finally:不管是否發(fā)生異常,都會執(zhí)行
throw:手動引發(fā)一個異常
throws:定義任何被調用方法的異常
二、異常出現(xiàn)的原因
用戶輸入錯誤;
代碼的錯誤;
環(huán)境的因素;
異常機制保證了程序的健壯性!
三、異常的分類
NullPointerException空引用異常
IndexOutOfBoundException下標越界異常
Error與編``譯環(huán)境有關,它是Java運行時的內部錯誤以及資源耗盡錯誤。很難修復,不期望用戶能修復。
四、獲取異常信息
程序發(fā)生異常的時候,程序就直接從try執(zhí)行到catch語句塊,不再繼續(xù)執(zhí)行`在這里。
public class text3 {
public static void main(String[] args) {
System.out.println("main開始執(zhí)行");
text3 a=new text3();
a.text();
System.out.println("main執(zhí)行結束");
}
public void text() {
int a;
try {
a=2/0;
System.out.println(a);
}catch(ArithmeticException e){
System.out.println("程序發(fā)生了異常");
}
}
}異常捕獲之后程序才不會斷
public class text3 {
public static void main(String[] args) {
System.out.println("main開始執(zhí)行");
text3 a=new text3();
a.text();
System.out.println("main執(zhí)行結束");
}
public void text() {
int a;
//try {
a=2/0;
System.out.println(a);
//}catch(ArithmeticException e){
//System.out.println("程序發(fā)生了異常");
//}
}
}控制臺結果:
異常自己不處理但是得聲明一下。
異常聲明:指一個方法不處理它所產生的異常,而是調用層次向上傳遞,誰調用的這個方法誰來處理。
五、手動拋出異常
throw exception; 參數(shù)exception表示要拋出的異常對象,該對象是throwable類的子類,而且只能夠是一個。
public void text1() throws ArithmeticException{
}
public static void main(String[] args) {
Text t=new Text();
try {
t.text();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}
}
public void text() throws Exception {
//手動拋出異常
throw new Exception("這是手動拋出來的");
}
}六、try catch finally的嵌套使用
public class Textthrow {
public static void main(String[] args) {
double a=Math.random();
try {
if(a>0.5) {
System.out.println(a+"程序不報錯");
}
else {
throw new Exception();
}
}catch(Exception e) {
System.out.println("這是外層捕獲的對象"+e);
try {
a=1/0;
}catch(ArithmeticException e1) {
System.out.println("這是內層捕獲的對象"+e1);
}finally {
System.out.println("這是內層的finally塊");
}
}finally {
System.out.println("這是外層的finally塊 ");
}
}
}七、異常鏈
定義:兩個或者多個不同的異常出現(xiàn)在同一個程序中,并且會發(fā)生嵌套拋出,我們稱之為異常鏈。
public class ExceptionChainText {
public static void main(String[] args) {
Calculator c=new Calculator();
try {
c.chufa(1, 0);
}catch(NumberCalculateExcetption e) {
e.printStackTrace();
System.out.println("錯誤原因"+e);
}
}
}
class Calculator{
public int chufa(int i,int j) throws NumberCalculateExcetption {
if(j==0) {
NumberCalculateExcetption e = new
NumberCalculateExcetption ("計算錯誤");
NegativeNumberException e1= new
NegativeNumberException("除數(shù)不能為0");
e.initCause(e1);//由e1引起的異常
throw e;
}
return 0;
}
}
class NegativeNumberException extends Exception{
public NegativeNumberException(String msg) {
super(msg);
}
}
class NumberCalculateExcetption extends Exception{
public NumberCalculateExcetption(String msg) {
super(msg);
}
}關于異常在java中的應用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
網頁標題:異常在java中的應用-創(chuàng)新互聯(lián)
網站URL:http://chinadenli.net/article46/ecdeg.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供手機網站建設、自適應網站、響應式網站、商城網站、動態(tài)網站、定制網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容