异常
程序运行时发生的错误称为异常,处理这些异常就称为异常处理。
程序运行时发生的错误称为异常,处理这些异常就称为异常处理。
异常处理原理如下:
◆在Java程序的执行过程中,如果出现了异常事件,就会生成一个异常对象。
◆生成的异常对象将传递给Java运行时系统(JRE),这一异常的产生和提交过程称为“抛出(throw)异常”。
◆当JRE得到一个异常对象时,它首先寻找处理此异常的代码。如果找到能够处理这种类型异常的代码方法后, JRE把当前异常对象交给这个方法进行处理,这一过程称为捕获(catch)异常。
◆如果JRE找不到可以捕获异常的方法,则JRE将终止,相应的Java程序也将退出。
异常的父类是Throwable包括系统的Error错误和Exception异常,常用的Exception是RuntimeException(运行时错误)、IOException(输入输出错误)和SQLException(SQl语句错误),常见的RuntimeException有IndexOutOfBoundsException(下标越界)、NullPointerException(空指针)、ClassCastException(类型转换)、ArithmeticExecption(计算异常)。
Error类对象由Java虚拟机生成并抛出;一般不能由应用程序直接处理,必须交由操作系统处理。(硬件原因造成的运行错误)
运行时异常一般是程序员本身造成,自行找错,一般错误必须捕获或声明这种异常,否则编译就报错。
Error类对象由Java虚拟机生成并抛出;一般不能由应用程序直接处理,必须交由操作系统处理。(硬件原因造成的运行错误)
运行时异常一般是程序员本身造成,自行找错,一般错误必须捕获或声明这种异常,否则编译就报错。
Java 中可用于处理异常的两种方式:
◆自行处理:可能引发异常的语句封入在 try 块内,而处理异常的相应语句则封入在 catch 块内。
◆回避异常:在方法声明中包含 throws 子句,通知潜在调用者,如果发生了异常,必须由调用者处理。
一般使用自行处理,不然在调用时又会出错,很麻烦。
◆自行处理:可能引发异常的语句封入在 try 块内,而处理异常的相应语句则封入在 catch 块内。
◆回避异常:在方法声明中包含 throws 子句,通知潜在调用者,如果发生了异常,必须由调用者处理。
一般使用自行处理,不然在调用时又会出错,很麻烦。
异常中的关键字:
throws捕获并向外抛出异常
throw抛出异常(自定义)
try catch是内部捕获异常并做自定义处理
finally是无论是否有异常都会被处理的语句(除非在finally前存在被执行的System.exit(int i)时除外)
注意:使用多重 catch 语句时,异常子类一定要位于异常父类之前
Final、finally、finalize的区别
Throw throws区别
throws捕获并向外抛出异常
throw抛出异常(自定义)
try catch是内部捕获异常并做自定义处理
finally是无论是否有异常都会被处理的语句(除非在finally前存在被执行的System.exit(int i)时除外)
注意:使用多重 catch 语句时,异常子类一定要位于异常父类之前
Final、finally、finalize的区别
Throw throws区别