常见的几种异常
NullPointerException空指针异常
IOException操作输入输出流的错误
ArrayIndexOutOfBoundsException下标越界异常
ClassCastException类型转换出现异常
IllegalArgumentException参数出现异常
NumberFormatException字符串与数字转换会出现的错误
异常(Exception)基础
Throwable
最大的
Error
错误不是异常,是脱离程序员控制的问题,错误在代码中通常会被忽略.例如, 当栈溢出时,错误就会产生,也无法被检测
Error类对象由Java虚拟机产生,当JVM不再有继续执行操作所需的内存资源时,将出现OutOfMemoryError.这些异常发生时,Java虚拟机(JVM)一般会选择线程终止;
Exception
几种常见的异常
Exception的五个关键字:
catch,try,finally,throw(在方法中抛出异常),throws(在方法上异常)
public static void main(String[] args) {
//ctrl+alt+t 可以一键生成异常
try { //监控的区域
new demo01().a();
} catch (Error e) { //想要捕获的异常类型,可以使用多个catch(要注意递进关系,从小到大)
System.out.println("错误了");
} finally {//无论异常是否出现都会执行 (可要可不要)
System.out.println("程序结束");
}
}
//假设方法中无法处理异常,就在方法上抛出异常,当使用时再去捕获
public void test(int a) throws ArithmeticException{
if(a==0){
throw new ArithmeticException();//主动抛出异常
}
}
e.printStackTrace()用来打印出错误的信息和位置
自定义异常
用户同时可以自定义异常
- 创建自定义异常 继承Exception类
- 设置参数进行传参,编写toString方法(异常的打印信息)
- 可以在抛出异常的方法中用try-catch处理异常,或者通过throws抛出到方法调用时,进行处理