Java中可以使用throw和throws两个关键字实现异常的抛出,但是两者有着明显的不同,throw是用在方法体内的,是一个动作,抛出的是一个异常实例,而throws是用在方法体的声明的后面的,是一个名词,是用来说明抛出的异常的类型。
Java的处理异常的机制中的try/catch/finally关键字的搭配为try/catch/finally,try/catch,try/finally三种形式。在catch里面依然可以使用try/catch/finally机制,实际上,对于一个try/catch组合而言,try里面的内容要比catch的层次低,也就是说try里面的内容相当于是catch所在那一层的方法对其的调用,相当于try里面的内容抛出了异常,由其调用者的catch捕获。举例如下:A的catch里面的try抛出的异常,是由catch 里面的catch捕获的,而catch里面的catch抛出的异常则是由方法A的调用者捕获的。另外如果一个类覆盖了其父类的某一个抛出异常的方法,那么该类可以不抛出异常,但是如果抛出异常,此异常类只能是其覆盖的父类方法抛出的异常类的同类或者子类。
A ()
{
try
{}
catch ()
{
try
{}
catch (Exception e)
{
throw e;
}
}
}