异常处理小总结

异常概述

异常:在java语言中,将程序执行中发生的不正常情况称为“异常”。(开发中的语法错误和逻辑错误不是异常)

Error

java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StackOverflowError (栈溢出)和 OutOfMemoryError(堆溢出)。一般不编写针对性的代码进行处理。

Exception

其他因编程错误或偶然的外因导致的一般性问题,可以使用针对性代码进行处理,如:

  1. 空指针访问
  2. 试图读取不存在的文件
  3. 网络连接中断
  4. 数组角标越界

异常体系结构

运行时异常

运行时异常:是指编译器不要求强制处理的异常。一般是指编程时的逻辑错误,是程序员应该积极避免其出现的异常。java.lang.RuntimeException类及其它的子类都是运行时异常。对于这类异常,可以不作处理,因为这类异常很普遍,若全处理可能会对程序的可读性和运行效率产生影响。

编译时异常

编译时异常:是指编译器要求必须处置的异常。即程序在运行时由于外因造成的一般性异常。编译器要求java程序必须捕获或声明所有的编译时异常。对于这类异常,如果程序不处理,可能会带来意想不到的结果。

异常结构

红色:编译时异常(受检异常)
蓝色:运行时异常(非受检异常)
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

异常处理机制

在这里插入图片描述
在这里插入图片描述

try-catch-finally

语法:

在这里插入图片描述
注意:

  1. finally是可选的,且finally中的代码一定会执行
  2. 在try结构中声明的变量,在出了try结构以后,就不能被调用了
  3. catch中的异常类型如果没有子父类关系,则谁声明在上,谁声明在下无所谓
  4. catch中的异常类型如果满足子父类关系,则要求子类声明一定在父类上面。否则报错。
  5. 当try内的某一行出现异常,程序就不会在try代码块内继续往下执行了,直接跳出try代码块外面,接着顺序执行。

捕获异常的有关信息

在这里插入图片描述

throws + 异常类型

在这里插入图片描述
注意:

  1. 方法重写时,子类重写的方法抛出的异常类型 不大于 父类被重写的方法抛出的异常类型
  2. throws 后可以加多个异常类型
  3. 当出现异常,会在异常代码处生成一个异常类的对象,此对象满足throws后异常类型时,就会抛出。异常代码后续的代码就不会再执行。

如何选择异常处理方式

在这里插入图片描述

手动抛出异常对象

在这里插入图片描述

自定义异常类

在这里插入图片描述
在这里插入图片描述
注意:当自定义异常类继承RuntimeException 时,手动抛出后,可以不用throws 进行处理;当自定义异常类继承Exception 时,手动抛出后,必须用throws 进行处理。(这种手动生成异常,一般不用try-catch处理)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值