Java之異常處理-創(chuàng)新互聯(lián)

Java之異常處理 1.異常處理
關(guān)鍵詞作用備注
try異常發(fā)現(xiàn)區(qū)間執(zhí)行代碼邏輯,在執(zhí)行期間發(fā)掘是否有異常
catch捕獲異常后處理區(qū)間若try區(qū)間有異常,捕獲異常在此區(qū)間處理
finally總是執(zhí)行不論是否有異常 此區(qū)間代碼總是執(zhí)行 釋放占用資源 如:IO流
throw拋出方法中異常異常扔到方法定義上(甩鍋給上級)
throws拋出方法定義上異常異常扔到調(diào)用方法的地方(甩鍋給上級)
package com.exception;
// 異常處理五個關(guān)鍵詞
// try 異常發(fā)現(xiàn)區(qū)間
// catch 異常處理區(qū)間 若try區(qū)間有異常,捕獲異常在此區(qū)間處理
// finally 不論是否有異常  此區(qū)間代碼總是執(zhí)行  釋放占用資源 如:IO流
// throw 拋出異常  方法中  異常扔到方法定義上(甩鍋給上級)
// throws 拋出異常  在方法定義上 異常扔到調(diào)用方法的地方(甩鍋給上級)
public class Test01 {public static void main(String[] args) {// finally會阻止try catch 的return
//        System.out.println(new Test01().e2()); // 2
        System.out.println(new Test01().e3()); // 2

    }

    public void exceptions (int a,int b) throws ArithmeticException{//  此處異常 傳遞給方法調(diào)用第28行 new Test01().exceptions(1,0);
        if(b==0){throw new ArithmeticException();//  此處異常 傳遞給方法定義第18行  public void exceptions (int a,int b) throws ArithmeticException
        }else {System.out.println("666");
        }
    }

    public void e1(){try {// 異常發(fā)現(xiàn)區(qū)間
            new Test01().exceptions(1,0);
        } catch (ArithmeticException e) {// 捕獲異常后處理區(qū)間
            e.printStackTrace();
            System.out.println("catch");
        }finally {// 總是執(zhí)行
            System.out.println("始終執(zhí)行");
        }
    }

    // 測試finally會阻止try catch 的return
    public int e2(){try {new Test01().exceptions(1,0);
            return 0;
        } catch (ArithmeticException e) {e.printStackTrace();
            System.out.println("catch");
            return 1;
        }finally {System.out.println("始終執(zhí)行");
            return 2;
        }
    }


    // 測試finally會阻止try catch 的return
    public int e3(){try {new Test01().exceptions(1,1);
            return 0;
        } catch (ArithmeticException e) {e.printStackTrace();
            System.out.println("catch");
            return 1;
        }finally {System.out.println("始終執(zhí)行");
            return 2;
        }
    }
}
2.自定義異常處理

MyException類為自定義的異常處理類,Test02類調(diào)用異常類
自定義異常類必須繼承Exception類

創(chuàng)新互聯(lián)建站長期為上千余家客戶提供的網(wǎng)站建設(shè)服務,團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為阿合奇企業(yè)提供專業(yè)的網(wǎng)站制作、網(wǎng)站設(shè)計,阿合奇網(wǎng)站改版等技術(shù)服務。擁有10余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

MyException類

package com.exception;
// 自定義異常類必須繼承Exception類
public class MyException extends Exception{private int num;

    // MyException構(gòu)造方法
    public MyException(int num) {// 初始化num賦值
        this.num = num;
    }

    // 最終異常是什么
    @Override
    public String toString() {return "MyException"+this.num;
    }
}

Test02 類

package com.exception;

public class Test02 {static void e1(int a) throws MyException{// 此處異常 傳遞給方法調(diào)用第18行  e1(10);
        System.out.println("傳入?yún)?shù):"+a);

        if(a<10){System.out.println("正常執(zhí)行");
        }else {throw new MyException(a); //此處異常 傳遞給方法定義第4行 static void e1(int a) throws MyException{}

        System.out.println("結(jié)束方法");
    }

    public static void main(String[] args) {try {e1(10);
        } catch (MyException e) {System.out.println("可以添加邏輯處理");
            System.out.println(e); // 打印為MyException類中toString()方法
        }
        // 執(zhí)行后打印
        // 傳入?yún)?shù):10
        // 可以添加邏輯處理
        // MyException10
    }
}
3.擴展之static

static為靜態(tài)修飾符,與類一起加載。使用static修飾的方法或者屬性,無需實例化, 可以使用類名直接調(diào)用。
探索父類 子類 初始化時 靜態(tài)函數(shù)塊 、 匿名函數(shù) 、 構(gòu)造器的運行順序
Person父類

package com.oop.demo06;

public class Person {private String name;
    static {System.out.println("父類靜態(tài)函數(shù)塊");
    }

    {System.out.println("父類匿名函數(shù)塊");
    }

    public Person(){System.out.println("父類無參構(gòu)造函數(shù)");
    }

    public Person(String name){this.name = name;
    }

}

Student類為子類

package com.oop.demo06;
// 靜態(tài)導入類
import static java.lang.Math.random;

public class Student extends Person {// 程序運行時只執(zhí)行一次
    static {System.out.println("子類靜態(tài)函數(shù)塊");
    }

    {System.out.println("子類匿名函數(shù)塊");
    }

    public Student(){System.out.println("子類無參構(gòu)造函數(shù)");
    }

    public static void main(String[] args) {Student student = new Student();

        // 靜態(tài)導入類
        System.out.println(random());
    }
}
//    父類靜態(tài)函數(shù)塊
//    子類靜態(tài)函數(shù)塊
//    父類匿名函數(shù)塊
//    父類無參構(gòu)造函數(shù)
//    子類匿名函數(shù)塊
//    子類無參構(gòu)造函數(shù)

總目錄,請點擊此處,Java學習

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)站標題:Java之異常處理-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://bm7419.com/article20/dcooco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、定制開發(fā)、建站公司、網(wǎng)站設(shè)計、品牌網(wǎng)站建設(shè)、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司