目录
1.什么是异常
编程通过, 程序运行的时候, 由于一些外部环境变化,或者程序逻辑问题,造成的运行时错误。
关键字: 编译通过, 运行时可能出现的错误,。
语法错误: 编译不通过,编译错误 最低级的错误。
异常类: 本质还是一个类, 给这一类型的类取一个统一名称。
2.异常的体系结构
Throwable是java语言中所有错误和异常的超类(万物即可抛)。
Error为错误,是程序无法处理的。
Exception是程序可以处理的异常。
3.优雅的异常处理
IOT --> 智慧型城市
java之父: 詹姆斯·高斯林 优雅
Think in java(java 编程思想): 埃克尔 (Bruce Eckel) 繁琐
spring 之父: 罗宾·约翰逊
异常处理:
1.try -catch - finally 捕获异常并处理
2. throw / throws 抛出异常
throw 异常对象; 具体抛出一个异常对象, 写在方法体内部
throw作用: 1) 返回异常结果 2) 结束方法
throws 异常类1,异常类2,... 写在方法签名上, 声明该方法可能会抛出什么类型的异常
异常常用的方法:
4.自定义异常
在实际开发中, 根据项目的业务需求, 把某些情况定义为异常:
删除学生: 通过学号删除, 学号不存在作为一种异常来看, 但是jdk没有这个类型的异常
jdk允许我们程序员根据业务需求, 自定义一些异常类:
步骤:
1) 创建一个类(异常类取名: XxxException)
2) 让这个类继承Exception类(推荐),或者Exception子类
3) 根据Exception的构造方法生成自定义异常类的构造方法
代码实例:
public class MyException extends Exception {
public MyException() {
super();
}
public MyException(String msg) {
super(msg);
}
public MyException(Throwable cause) {
super(cause);
}
public MyException(String msg, Throwable cause) {
super(msg, cause);
}
}
使用自定义异常类
public String[] xxArray(int length) throws MyException {
if (length < 0) {
throw new MyException("数组长度小于0,不合法");
}
return new String[length];
}