10:有关异常的知识。
一:
printStackTrace( )函数:指出异常的类型,性质,栈层次及出现再程序中的位置。
getMessage( )函数:输出错误的性质。
toString( )函数:给出异常的类型,性质。
二:
Finally 块必须与try 或 try---catch配合使用。如果 存在,则总会执行。但在以下情况除外:
1》 在finally 块中发生了异常。当try 块中发生了异常,不管是运行时异常还是被检查的异常,或是自己抛出了一个异常,finally代码的后继部分将不被执行。
2》 程序所在的线程死亡。
3》 当前的代码中用System.in.read( )退出运行
4》 关闭CPU。如果在try 块执行期间拔掉电源,finally 也不会被执行。
三:
JAVA中可能会抛出的异常:
1》 调用的方法抛出了异常
2》 检测到了错误并使用 throw 语句抛出异常
3》 程序代码有错误(数组越界错误,JAVA运行时刻系统产生内部错误)
四:
1》 Error 类中派生出来的异常和从RuntimeException类中派生的异常不用在方法声明中指定。属于不检查异常(unchecked exception). RuntimeException类的错误的强制类型转换,数组越界访问,空指针操作。其他异常(非RuntimeException类)有:文件指针越界,格式不正确的URL,试图为一个不存在的类找一个代表它的Class类的对象当然还有一种称之为检查异常(checked exception)是指那些在程序中应该处理的异常。
2》当子类的方法覆盖了超类的方法时,子类方法的throws 子句中声明的异常不能多于超类方法中声明的异常,否则会产生编译错误。因此,如果超类的方法没有throws 子句,那么子类中覆盖它的方法也不能使用throws 子句指明异常。对于接口,情况相同。