Java 异常处理

Java 异常处理

1、Java的异常处理思想:(面向对象思想)

  为对应的异常提供了相应的异常类,在异常类中就描述了该异常的所有信息,然后当出现相应的异常时就抛出该异常的对象,该异常对象就表示该异常类,就是封装了该异常的所有信息。

2、异常体系

异常类的结构关系
Throwable ---- 根类
  1、Error ---- 错误
    一般是JVM抛出的严重性的问题,这种问题一般都是代码的错误问题,无法像异常一样去针对性处理,必须修改代码;
  2、Exception ---- 异常
    程序运行中出现的不正常情况,而异常情况的出现是正常的,就可以针对性处理:
    1)编译时异常
      a、编译时出现的异常;
      b、一般是定义的方法本身存在问题,编译不让通过;
      c、继承自Exception类及其子类(RuntimeException及其子类除外)的一场都是1编译时异常;
      d、除了在方法体中使用关键字throw抛出相应的异常对象,还需在方法的声明之后使用关键字throws声明该方法可能要抛出的异常类型(类名);
    2)运行时异常:
      a、编译通过运行时出现的异常;
      b、一般是方法本身没有问题,编译可以通过,但是在调用方法的期间出现问题,无法正常运行
      c、继承自RuntimeException类及其子类的异常都是运行时异常;
      d、只需要在方法体中使用关键字throw抛出相应的异常对象;

  3、throw关键字和throws关键字的区别:
    1)throw在方法体中抛出异常对象,一次只能抛出一个异常对象,如果需要抛出多个异常对象则需要多个throw;
    2)throws在方法的声明最后,用于声明方法可能抛出的异常类型,其可以指定抛出的多个异常类型,多个异常类型之间使用‘,’分隔;

3、自定义异常

1、自定义的异常类必须属于异常体系(通过继承完成),只有异常体系内才具有可抛性;
2、在自定义的异常类中提供相应的构造器,然后去访问其所继承的父类的对应构造器;

4、异常的处理方式

1、抛出:
  被调用方法将异常抛出给调用方法,调用方法再抛给类,类对象抛给主方法,最后抛给虚拟机,虚拟机将异常信息显示再控制台上;

2、捕获:

try{
	被检测代码
}catch(捕获到被检测代码抛出的异常类型 异常对象名){
	异常处理代码
}finally{
	必须执行的代码
}

    1)try中代码没有异常,就正常执行try中的代码;如果try中代码有异常且抛出了异常,catch块就会捕获try中抛出的异常对象并执行catch中的代码内容并进行处理;
    2)try catch finally不是一个固定的语句块,其实是三个独立的语句块,只不过是这三个语句块经常放在一起使用;
    3)finally块中的内容是始终都要执行的,一般用于在finally关闭资源;

    4)子父类间覆盖父类方法时:
      a、父类没有抛出异常,子类覆盖父类方法时不能抛出异常,只能进行捕获处理;
      b、父类方法抛出多个异常,子类方法只能抛出在父类抛出范围的异常;
      c、父类方法抛出异常,子类可抛出可捕获;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值