java异常处理

java中的异常以类和对象的方式存在

java的异常类 

异常的继承结构图:

编译时异常和运行时异常都是发生在运行阶段,编译阶段是不会发生异常的

编译时异常和运行时异常区别:

编译时异常一般发生的概率比较高 相反 运行时异常发生概率比较低

编译时异常是可以做提前处理的如抛出异常和捕捉异常运行时异常是不能处理的 直接结束程序

编译时异常又被成为 受检异常/受控异常

运行时异常又被成为 未受检异常/未受控异常

异常的处理方式

第一种方式:在方法声明的位置上,试用throws关键字 抛出异常

异常发生之后,如果我选择了上抛,抛给调用者,调用者需要对这个异常已经处理,如果一直抛,抛到JVM后,程序会直接停止。

 throws ClassNotFoundException是抛给上一级去解决。

 如果抛给上一级未解决时会发生报错。

第二种方式:试用try catch捕捉异常

try catch会判断异常,并解决异常。

异常对象的使用方法

 异常对象有两个重要的处理方法:

1.获取异常简单的描述信息:exception.getMessage();

 

2.打印异常追踪的堆栈信息:exception.printStackTrace();

 

finally子句的试用

关于try catch的finally子句

在finally子句中的代码是最后执行的,并且一定会执行的,即使try语句中的代码出现了异常

finally和try必须一起试用不能单独编写

可以看到finally run是执行的 那fis.close()没报错也是执行成功的。

Java中怎么自定义异常

SUN提供的JDK内置的异常是不够用的,异常类可以自己定义。

自定义异常两步:

1.编写一个类继承Exception或者RunTimeException

2.提供两个构造方法,一个无参数一个有参数。

 

 

异常与方法覆盖

父类中的方法抛出异常后 子类重写不需要抛出异常

而且子类还可以抛出其他异常

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值