学习异常知识

Java中程序发生的不正常行为称为异常

StackOverflowError栈溢出错误

java当中描述异常根据类来进行描述的

Throwable:是异常类的顶层类,派生出两个重要的子类Error和Exception

异常分为运行时异常(非受查)(程序开始运行的时候)和编译时异常(受查)

受查异常(程序还没有运行就开始报错)

异常的处理

Java处理异常的核心是EAFP

关键字:throw try catch final throws        

在Java中可以通过throw关键字抛出异常

throws是声明异常

throw必须写在方法体内部,一旦抛出异常,程序就不会再执行了。

异常的捕获

try

{可能出现异常的代码放在这里}

在try中抛出异常的位置之后代码将不会执行。

catch(要捕获异常对象的类型  e)

没有捕捉到对应的异常就会交给jvm处理,如果交给jvm处理程序就会直接终止

最后还有finally

e.printStackTrace显示异常出现在哪里,并不影响后续代码执行

所有的异常的父类都是Exception

如果你捕捉的异常具备父子类关系一定是子类在前,父类在后。

finally一定会被执行,不管是否抛出异常,都被执行,资源会回收。尽量避免在finally中使用return语句。

异常的处理,如果一直向上传递都没有合适的方法处理异常,那么最终就会交给jvm处理,程序就会异常终止。

总结

程序先执行try的代码,如果try中的代码有异常则会结束try中代码看和catch中的异常类型是否匹配。找到匹配类型就会结束catch中的代码,一直向上调用处理异常,指到JVM来进行处理

自定义异常

自定义一个类继承RuntimeException运行时异常非受查异常

自定义一个类继承Exception编译时异常受查异常

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值