Java 异常处理机制(异常分类、try-catch、自定义异常)
·
一、前言
程序运行时出现的非语法错误(空指针、数组越界、除数为 0)统称为异常。如果不处理,程序会直接终止、崩溃。Java 提供了完善的异常处理机制,保证程序健壮性,是课程作业必考知识点。
二、异常的分类
1. 编译时异常(受检异常)
必须处理,否则代码报错 例:文件读写异常、日期解析异常
2. 运行时异常(非受检异常)
运行时才报错,编译不报错 例:空指针、数组越界、除数为 0
3. 错误 Error
系统级严重问题,程序无法处理
三、异常处理四大关键字
- try:包裹可能出错的代码
- catch:捕获并处理异常
- finally:无论是否异常,一定执行(释放资源)
- throws:抛出异常,交给上层处理
四、标准 try-catch-finally 示例
java
运行
public class ExceptionDemo {
public static void main(String[] args) {
try {
int a = 10 / 0; // 除数为0异常
} catch (ArithmeticException e) {
System.out.println("算术异常:除数不能为0");
} finally {
System.out.println("代码执行完毕,无论是否报错都会执行");
}
}
}
五、throws 抛出异常
适用于:自己不想处理,交给调用者处理
java
运行
public class ThrowsDemo {
public static void test() throws Exception{
int[] arr = {1,2,3};
System.out.println(arr[10]);
}
public static void main(String[] args) throws Exception {
test();
}
}
六、常用运行时异常
NullPointerException空指针异常ArrayIndexOutOfBoundsException数组下标越界ArithmeticException算术异常ClassCastException类型转换异常
七、自定义异常(作业高频)
当系统自带异常不满足业务需求时,自定义业务异常:
java
运行
// 自定义异常类
class AgeException extends RuntimeException{
public AgeException(String msg){
super(msg);
}
}
public class CustomException {
public static void checkAge(int age){
if(age < 0 || age > 150){
throw new AgeException("年龄不合法!");
}
}
public static void main(String[] args) {
checkAge(200);
}
}
八、总结
- 异常分为编译时异常、运行时异常、错误;
try-catch捕获处理异常,防止程序崩溃;finally用于资源释放;throws向上抛出异常;- 自定义异常可以实现业务规则校验,让程序更规范健壮。
更多推荐

所有评论(0)