运行时异常和非运行时异常
运行时异常:都是RuntimeException类及其子类异常:
- IndexOutOfBoundsException 索引越界异常
- ArithmeticException:数学计算异常
- NullPointerException:空指针异常
- ArrayOutOfBoundsException:数组索引越界异常
- ClassNotFoundException:类文件未找到异常
- ClassCastException:造型异常(类型转换异常)
这些异常是不检查异常(unchecked Exception),程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的。
非运行时异常:是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。
如:
IOException:文件读写异常
FileNotFoundException:文件未找到异常
EOFException:读写文件尾异常
MalformeduRLException:URL格式错误异常
SocketException:Socket异常
SQLException:SQL数据库异常
其中,最常用的五个运行时异常:
NullPointerException
ArrayIndexOutOfBoundsException ClassCastException
IllegelArgumentException
SecurityException
运行异常和检查异常有何不同?
异常表示程序运行过程中可能出现的非正常状态
运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。
Java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
error和exception的区别?
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出,不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题,它表示如果程序运行正常,从不会发生的情况。