try
{ { //正常执行的代码(可能抛出异常的语句)} 正常执行的代码(可能抛出异常的语句) 正常执行的代码
catch ( 异常类型 e) 异常类型1
//异常处理语句 异常处理语句 }
catch …. catch ( 异常类型 e) 异常类型n
{
{
//异常处理语句 异常处语句
}
catch ( Throwable t )
{System.out.println("Error…Division by zero"); } System.out.println("The result is:"+result); } } 输出 Error ...Division by zero The result is : 0
程序分析: 程序分析: 在上述代码中, 在上述代码中,main()方法激活子类超越父类的方法 方法激活子类超越父类的方法 divide(). . 方法. 方法 子类方法依次以收到的参数调用父类的 divide()方法. 在父类方法发生异常时, 执行时间系统首先 在父类方法发生异常时 , Java执行时间系统 首先 在 执行时间系统 首先在 父类方法(被调用方法)里寻找异常处理. 父类方法(被调用方法)里寻找异常处理. 然后,在子类的方法(调用方法)里寻找异常处理. 然后,在子类的方法(调用方法)里寻找异常处理. 当它找不到处理程序 , 它转到 main() 方法并执行 catch块方法里的语句. 块方法里的语句. 块方法里的语句
有时候我们希望某些语句在发生异常时也能执行, 有时候我们希望某些语句在发生异常时也能执行 , 以释放外部资源或者关闭一个文件, 以释放外部资源或者关闭一个文件,这时 可以用finally 语句来实现. 语句来实现. 可以用 例如: 例如: aFileClass f = new aFileClass(); try { f.open(aPathString) { //附加的文件操作 } } 附加的文件操作 catch (aFileOpenError x) { System.out.println("Error opening file"); }