Java异常处理
1、常见异常:
(1)由Exception直接派生的子类:ClassNotFoundException(类找不到)、InterruptedException(中断异常)、IOException(输入输出异常)、IllegalAccessException(非法访问异常)、NoSuchMethodException(方法找不到)、RuntimeException(运行时异常)等。
(2)RuntimeException子类:ArithmeticException(算术异常)、ClassCastException(类型强转异常)、IllegalArgumentException(非法参数)、IndexOutOfBoundsException(下标越界)、NoSuchElementException(没有这个元素)等。
(3)IllegalArgumentException子类:IllegalFormatException(非法格式)、NumberFormatException(数字格式异常)等。
(4)IndexOutOfBoundsException子类:ArrayIndexOutOfBoundsException(数组下标越界)、StringIndexOutOfBoundsException(字符串下标越界)。
关系树
2、错误(Error):
AssertionError(断言错误)、VirtualMachineError(虚拟机错误)、LinkageError(类连接错误)、InternalError(内部错误)、OutOfMemoryError(内存溢出)、StackOverflowError(栈溢出)。
关系树:
3、异常和错误的区别:
(1)错误比异常严重,异常可以捕获并处理,但是错误发生之后不能捕获处理,程序非正常结束。
4、断言:
(1)断言语句指武断宣称某条件必须成立的语句。如:断言除法运算中除数必须大于0,则这个条件成立时才能进行除法运算;不成立则发生断言错误。
(2)断言语句可以执行必须依赖一个条件:Java虚拟机必须开启断言状态。默认情况下虚拟机断言状态是不会开启的,需要在命令行开启该状态:java –ea 主类名 如果不开启断言状态,则自动忽略断言语句。
(3)断言语句格式:
assert 条件表达式
assert 条件表达式 : 字符串类型断言消息(该消息用于程序终止之前显示)
5、throw和throws的区别:
(1)throw在方法体中,而throws在方法声明中(方法头、函数头)。
(2)执行throw语句一定抛出某异常,但是throws表示声明可能会出现的异常,并不一定会抛出异常。
6、try catch finally语句:
这里不再介绍 ^-^