工作日🐇🐇🐇
这两天在刷Java技能树,刚好刷到异常,也让我自己认识到很多的不足,这里来总结一下,感谢c站技能树,这里有很多知识可以学习😗⭐⭐⭐
以下结合本人经验+c站技能树知识做了一个汇总😼😼
文章目录
异常基础知识
Exception分为两类,一类是:运行时异常(RuntimeException)另一类是编译时异常(书上写的可称非运行时异常或已检查异常,是因为在Exception类中的子类只有RuntimeException是运行时异常。)
在进行异常捕获的时候,一定要记住要先捕获小异常,再捕获大异常
RuntimeException:不可查异常
对于不可查异常,编译器不会强制要求处理的异常,而编译时异常(非运行时异常),编译器会强制要求进行处理。
就是你在写代码的时候(编译期间)他就会给你报错,这就是可查异常,编译器会警告你,否则就是不可查异常(下面的例子非常清楚了)
常见的运行时异常(虽然编译也能通过,但是还是需要我们处理避免出现这些异常。)
- ArrayIndexoutofBoundsException 访问数组时使用无效索引值
- NullPointException 尝试访问null对象成员,空指针异常
- ClassCastException 类型转换异常
- ArithmeticException 非法的算术运算,如以0作除数
- NumberFormatException 数字转化格式异常
- IllegalArgumentException 方法接收到非法参数
- IndexOutOfBoundsException 下标超出范围异常
Checked:可查异常
除了上述的Runtime异常和其子类异常之外,其他的异常就是Checked异常
例子
ublic static void t1(){
try {
System.out.println("hi");
}catch (IndexOutOfBoundsException e){
e.printStackTrace();
}
}
public static void t2(){
try {
System.out.println("hi");
}