亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

烏托邦漂流者的Java學習筆記11

標簽:
Java

起得最早的一天。。。。
异常:
图片描述

error异常:系统崩溃,虚拟机异常,内存溢出等,线程死锁
exception异常:
1.runtimeexception(非检查异常):
NullPointerException - 空指针引用异常
ArithmeticException - 算术运算异常
ArrayIndexOutOfBoundsException,数组下标越界
ClassCastException,类型强制转换异常
2.Checked Exception(检查异常),
各种奇葩原因,文件不存在等,需要try...catch解决
try....catch....finally异常处理:
try{可能发生异常的语句}
catch{捕获到异常并且做出行动}
try后可以加多个catch,顺序有小到大,由子类到父类,会就近原则处理异常,
善后工作finally
try{}
catch{}
finally{//要执行的代码}

public class TryCatch {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        TryCatch op=new TryCatch();
        int result=op.test();
        System.out.println("result的值为"+result);
    }

    public int test(){
        try{
            int i=10;
            int b=100;
            int result=10;
            while(i>-1){
                result=result+b/i;
                i--;
            }

        }
        catch(Exception e){

            System.out.println("异常发生了");
            e.printStackTrace();
        }
        finally{
            System.out.println("finally执行了");
        }
        return 15;
    }

}

打印出异常方法:e.printStackTrace();
无论是否发生异常finally都会执行,
如果try。。。catch没有返回值会继续执行异常之后的语句;
抛出异常throw,throws:
throws写在参数列表之后,方法体之前}
throw是一个动词,会抛出具体的异常,会交给try....catch.....,如果没有,会交给更上级,
自定义异常,class 自定义异常类 extends 异常类型{},可以添加含参构造器,也可以添加更多复杂的功能
异常链:一个异常会包装成为新异常中的引用,一个异常发生另一个也会发生,这样的链式反应

public class ChainTest {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根

            ChainTest t=new ChainTest();
          try {
                t.test2();
            } catch (Exception e) {
                e.printStackTrace();
                // TODO 自动生成的 catch 块
                System.out.println("终于执行了");
            }

    }

    public void test1() throws Drunk{
        throw new Drunk("喝酒别开车");
    }

    public void test2() 
    {
        try {
            test1();
        } catch (Drunk e) {
            // TODO 自动生成的 catch 块
            RuntimeException newExc=new RuntimeException("hahaha");
            newExc.initCause(e);
            throw newExc;
        }
    }

}

initCause,会包装异常,执行过后,用throw时不需要用throws

點擊查看更多內容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消