异常

1 异常的概念

(1)异常是指程序在运行过程中出现的非正常情况,会导致JVM非正常终止;

(2)在java中,每个异常都有一个对应的类,异常的产生就是创建对应的异常对象并抛出;

(3)异常的作用就是帮助程序员定位问题的。

 

2 异常体系

(1)异常的根类是java.lang.Throwable,其下有两个子类java.lang.Error和java.lang.Exception,我们所说的异常是指Exception

(2)异常的分为编译时期异常和运行时期异常两种

        1)编译时期异常:必须进行处理的异常,如果抛出了异常但是没有处理,编译器会报错,也就是必须显示进行异常处理

        2)运行时期异常:可以不处理,是某个方法抛出,或则在执行时虚拟机抛出,系统默认会抛给JVM,JVM会打印信息并终止运行;

        3)区别:编译期异常被创建,必须try或throw(throw是层层向上,直到被try或者到达虚拟机);

                        运行期异常创建后可以不处理;

 

3 异常的产生过程过程

(1) 每个异常都有对应的类,所以一个异常的产生对应一个异常对象的创建,以数组越界为例

 4 异常的处理方式

    异常一般有连两种处理方式,一种是声明throws,将异常抛出,一种是try...catch处理

(1)throws声明抛出异常

        格式:修饰符 返回值类型 方法名(参数) throws 异常类名1,异常类名2…{ }

       

(2)try...catch捕获异常

       1)try捕获异常后,如果在catch没有继续抛出异常,则后续代码可以继续执行,不会中断

       2)格式:

                        

      3)try...catch三种写法

          1)多个异常:1个try,1个catch

          2)多个异常:1个try,多个catch:建议采用该种书写方式

          3)  多个异常:多个try,多个catch 

      4)finally

         (1)在finally是try..catch方式的可选代码,finally代码块中的代码(除了在try或catch中调用退出虚拟机代码)一定会被执行,一般用来写资源关闭的代码

      (2)finally如果写上return,会覆盖原有程序的return,就连catch中抛出的异常也会被覆盖,所以要谨慎使用。

(3)子类继承父类时,父类有异常需要注意

        (1)父类方法有异常,子类重写父类有异常的方法时,需要声明父类的异常或则父类异常的子类或则不抛出异常

        (2)父类方法没有异常,子类重写父类的方法时候,不能抛出异常,发生异常只能在内部处理(运行时异常除外,运行时异常不用进行处理,系统会有默认处理机制)

5  自定义异常

(1)自定义异常需要继承Exception(编译时异常)或则RuntimeException(运行时异常);

(2)自定义异常一般要写上有参构造函数,构造函数直接调用父类的有参构造函数,参数为异常的提示信息。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值