java异常分类,举例常见异常的case
异常分类
-
Error:错误,无法被处理的
-
Exception:异常,能够被程序本身处理的,可以通过try…catch语句捕捉异常,或者是throws抛出异常。分为运行时异常和非运行时异常。
-
运行时异常:就是RuntimeException,编译时不会检查出错误的。一般是由于逻辑错误引起的,程序员可以手动去解决的,比如判空等。
-
非运行时异常:也叫编译异常,就是Exception下除了RuntimeException以外的异常。是必须进行处理的异常,编译器会进行异常提醒的。如果不进行处理,程序编译不通过。
-
常见异常的case
ArithmeticException
算术异常,除0等时触发
ArrayIndexOutOfBoundsException
数组下标越界异常,顾名思义,数组下标超过数组长度或者小于0时触发
NullPointerException
空指针异常,操作一个null对象的方法或者属性时触发。
ClassCastException
类型转换异常,如将一个数字强制转换成字符串。
NumberFormatException
数字格式异常,比如包装类之间的转换
还有一些其他的异常:
OutOfMemoryError
内存异常异常,这不是程序能控制的,是指要分配的对象的内存超出了当前最大的内存堆,需要调整堆内存大小(-Xmx)以及优化才程序。
IOException
IO,即:input,output,我们在读写磁盘文件,网络内容的时候会发生的一种异常,这种异常是受检查的异常,需要手工捕获。
FileNotFoundException
文件找不到异常,如果文件不存在就会抛出这种异常。
ClassNotFoundException
类找不到异常,在类路径下不能加载指定的类。
throw和throws的区别?
throw: 是真实抛出一个异常
throws: 是声明程序可能会抛出一个异常
ow和throws的区别?
throw: 是真实抛出一个异常
throws: 是声明程序可能会抛出一个异常