总结异常(无代码)

Throwable:有两个重要的子类:Exception和Error ,它们各又包含大量的子类

Error(错误):是程序无法处理的错误,表示运行应用程序中较为严重的问题,代码运行时出的问题。
如:OutOfMemoryError,StackOverFlowError ,它们是Virtual MachineError。还有类定义错误NoClassDefFoundError等。这些错误不可查。

Exception(异常):重要子类:RuntimeException类 和 IOException
异常和错误的区别:异常可被程序本身处理,错误是无法处理的

Java的异常又可分为可查异常和不可查异常。
可查异常:编译器要求必须强制处理的异常
不可查异常:编译器不要求强制处理的异常,包括运行时异常和错误

运行时异常:都是RunTimeException类以及子类的异常,这些异常是不检查异常,可以捕获也可以不捕获
非运行时异常(编译异常):使RunTimeException意外的异常,在编译时必须处理的异常,类型上都属于Exception类以及子类
(java中的异常为Throwable,异常为Exception,这是区分可查/不可察 和 运行/非运行的依据)

异常处理机制:抛出异常,捕捉异常
抛出异常:从方法中抛出的异常用throws 。throw一般出现在catch语句块中
捕捉异常:try…catch 或者 try-catch-finally语句实现

一个方法所能抛出的异常,一定是java代码在某处所抛出的异常,简单来说,异常总是先被抛出,后背捕捉。

一旦某个catch捕获到匹配的异常类型,将进入异常处理代码。一经处理结束,就意味着整个try-catch语句结束。其他的catch子句不再又匹配和捕获异常类型的机会,所以catch子句捕获的异常一定是从小到大,如果第一个就是Exception,那么后面的catch子句就没有机会被执行。
finally子句是一定会被执行的,无论是否捕获或处理异常。再try块或catch块中遇到return语句时,finally语句块将在方法返回之前被执行。以下四种特使情况可以不被执行:
1 再finally语句块中发生了异常。
2 再前面的代码中用了System.exit()退出程序
3 程序所在的线程死亡
4 关闭CPU

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值