小白学java

小白学java第27天

 

异常处理:当异常发生时,对异常处理的方式

方式:

        1.try-catch-finally :程序员在代码中捕获发生的异常,自行处理

        try{

                代码可能有异常}catch(Exception e){

                //捕获到异常

                //1.当异常发生时

                //2系统将异常封装成Exception 对象 e,传递给catch

                //3.得到异常对象后程序员自己处理

                //4注意:如果没有发生异常catch代码块不执行}finally{

                //不管try代码是否有异常发生,始终要执行finally

                //如果没有finally语法也通过}

        注意:

        (1)如果异常发生了,异常后边的代码不会执行,直接进入到catch块

        (2)如果异常没有发生,则顺序执行try的代码块,不会进入到catch

        (3)如果希望不管是否发生异常,都执行某段代码(比如关闭连接,释放资源),则使用finally

        (4)如果偶多个catch语句,捕获不同的异常(进行不同的业务处理),要求子类异常写在前面,父类异常写在后面

        (5)可以进行tey-finally配合使用,这种用法相当于没有捕获异常,因此程序会直接崩掉(应用场景:执行一段代码不管是否发生异常都必须执行某个业务逻辑)

        2.throws : 将发生的异常抛出,交给调用者(方法)来处理,最顶级的处理着就是JVM

        (引用的别人的流程图)

        使用:

        (1)如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显示地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理

        (2)在方法生命中使用throws可以声明抛出异常的列表

        (3)使用throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类

        (4)throws关键字后也可以是异常列表。即抛出多个异常

        注意:

        (1)对于编译异常,程序必须处理,比如try-catch或throws

        (2)对于运行时异常,如果程序没有处理,默认是throws的方式处理

        (3)子类重写父类方法时,对抛出异常的规定:子类重写的方法,所抛出的异常类型要么和父类的抛出的异常一致,要么为父类 跑出的异常的类型的子类型

        (4)在throws的过程中,如果有方法try-catch就相当于异常处理,就可以不用throws

自定义异常:程序中出现错误,而这种错误没有在Throwable子类中描述处理,这个时候可以自己设计异常类,用于描述该错误信息

 步骤:

        1.定义类:自定义异常类名继承Exception或RuntimeException

        2.如果继承Exception,属于编译异常

        3.如果继承RuntimeException,属于运行异常(这也是一般情况)

throws和throw的区别:

意义位置后面跟的东西
throws异常处理的一种方式方法声明处异常类型
throw手动生成异常对象的关键字方法体中异常对象

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值