Java异常知识点总结回顾

提示:本文帮助自己总结和回顾java异常的知识点,希望也能帮到大家


一、 Java异常类型结构

java异常

如上图所示,Throwable是所有java中错误和异常的超类,它又可以分为Error和Exception,Exception又可以分为IOExcep和RuntimeException。

二、Error

Error是指java运行过程中系统内部的错误,通常为虚拟机错误,如系统崩溃,内存不足,堆栈溢出等问题,Error是不会被检测出来的,一旦发生程序即终止。

三、Exception

Exception是指可以在应用程序中捕获并处理的,通常遇到这样的异常应该进行处理,使得程序能够正常运行;Exception又分为受检异常IOException和运行时异常RuntimeException。

1.受检异常

受查异常会在编译时被检测。如果一个方法中的代码会抛出受查异常,则该方法必须包含异常处理,即 try-catch 代码块,或在方法签名中用 throws 关键字声明该方法可能会抛出的受查异常,否则编译无法通过。如果一个方法可能抛出多个受查异常类型,就必须在方法的签名处列出所有的异常类。

2.运行时异常

编译器不会对运行时异常进行检测,没有try-catch或者throw关键字时程序一样能编译通过

3.JVM 是如何处理异常的?

在一个方法中如果发生异常,这个方法会创建一个一场对象,并转交给 JVM,该异常对象包含异常名称,异常描述以及异常发生时应用程序的状态。创建异常对象并转交给 JVM 的过程称为抛出异常。可能有一系列的方法调用,最终才进入抛出异常的方法,这一系列方法调用的有序列表叫做调用栈。

JVM 会顺着调用栈去查找看是否有可以处理异常的代码,如果有,则调用异常处理代码。当 JVM 发现可以处理异常的代码时,会把发生的异常传递给它。如果 JVM 没有找到可以处理该异常的代码块,JVM 就会将该异常转交给默认的异常处理器(默认处理器为 JVM 的一部分),默认异常处理器打印出异常信息并终止应用程序。

4. throw 和 throws 的区别是什么?

throw 关键字用来抛出方法或代码块中的异常,受查异常和非受查异常都可以被抛出。
throws 关键字用在方法签名处,用来标识该方法可能抛出的异常列表。一个方法用 throws 标识了可能抛出的异常列表,调用该方法的方法中必须包含可处理异常的代码,否则也要在方法签名中用 throws 关键字声明相应的异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值