Java之异常

异常概念

异常一般我们未能意料到的情况,可能是系统或者环境问题造成,也可能是程序逻辑不严谨导致的错误

异常分类

异常:可以理解是在程序运行中发生的错误或者意料之外的情况

分为 编译期异常运行期异常

  1. 编译期异常:比如少括号,少分号,在编译期间就可以发现并且改正
  2. 运行期异常:在程序运行期间出现的错误,一般无法预知,比如空指针异常,数组索引越界

异常体系图

在这里插入图片描述

异常祖类Throwable

结构图

在这里插入图片描述

Error

Error是程序无法处理的错误,表示运行应用程序里较严重的问题

它们在应用程序的控制和处理能力之外,而且绝大多数是程序运行时,不允许出现的情况

对于设计合理的程序来说,如果发生Error,也无法处理

常见的Error有:
VirtualMachineError:虚拟机错误
OutOfMemoryError:内存溢出
ThreadDeath:线程死锁
在这里插入图片描述

Exception

Exception:是程序本身可以处理的异常
异常处理就是对此类异常进行处理

Exception分为两类:检查异常和非检查异常
在这里插入图片描述

Unchecked Exception 非检查型异常

非检查异常就是 RuntimeException异常及其子类,
此类异常不要求强制处理,开发过程中可以不处理

但是此类异常的出现,往往是程序代码中的错误,我们要做的是修正代码中造成此类异常出现的错误代码。

RuntimeException常见异常:
1、NullPointerException:空指针异常。
改进:代码里先判断一下对象是否为空,再进行下一步操作
2、ArrayIndexOutOfBoundException:数组索引越界异常
改进:对数组元素操作之前,先判断该元素索引是否小于数组元素个数减一
3、ArithmeticException:算数异常
4、ClassCastException:类型转换异常
改进:在代码里找,类型转换之前的类型是什么,正确对应上
在这里插入图片描述
在这里插入图片描述

Checked Exception 检查型异常

在Java中的Exception的子类中除了RuntimeException及其子类之外,都是检查型异常
此类异常,就必须进行处理,否则无法通过编译器编译
在这里插入图片描述
在这里插入图片描述

处理异常

处理异常有两种方式:抛出异常捕捉异常

抛出异常

throw

在方法代码中抛出异常使用关键字 throw,后面紧跟一个异常对象
比如 throw new Exception();
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值