java中的异常分为受检的异常和不受检的异常
1.受检的异常,就是在编译期间被强制检查的异常,因此需要try catch 来处理异常,就是在方法的声明中声明的异常。
2.不受检异常就是:在方法的声明中没有声明,,但是在方法的运行过程中发生的各种异常被称为“不被检查的异常”。这种异常就是错误,会被自动捕获。
受捡异常 和不受检的异常的区别是?
A被检查的异常应该用try-catch块代码处理,或者在main方法中用throws关键字让Jre了解程序可能抛出哪些异常,不受检异常在程序中不要求被处理,或者用throws语句告知。
B.Exception是所有被检查异常的基类,然而,RuntimeException是所有不受检查异常的基类。
C.被检查的异常适用于那些不是因程序引起的错误情况,比如:读取文件时文件不存在引发的FileNotFoundException。然而,不被检查的异常通常都是由于糟糕的编程引起的,比如:在对象引用时没有确保对象非空而引起的NullPointerException。
3.**不受检查异常的基类RuntimeException.**实际上在java中“不受检查的异常”是默认一定在程序中的,也就是说你不去声明使用它,它也会一直在被使用着。常见的RuntimeException异常包括:NullPointerException:见的最多了,其实很简单,一般都是在null对象上调用方法了。
NumberFormatException:字符串转换为数字时,例如 int i= Integer.parseInt(“ab3”);
ArrayIndexOutOfBoundsException:数组越界,比如 int[] a=new int[3]; int b=a[3];
ClassCastException:类型转换错误,比如 Object obj=new Object(); String
s=(String)obj; ArithmeticException:算术错误,典型的就是0作为除数的时候。IllegalArgumentException:非法参数,在把字符串转换成数字的时候经常出现的一个异常,我们可以在自己的程序中好好利用这个异常。
4.Java中所有异常或者错误都继承Throwable,我们把它分为三类:
Error:所有都继承自Error,表示致命的错误,比如内存不够,字节码不合法等。
Exception:这个属于应用程序级别的异常,这类异常必须捕捉。
RuntimeException:RuntimeException继承了Exception,而不是直接继Error,这个表示系统异常,比较严重。