你可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部,写另一个try语句保护其他代码。每当遇到一个try语句,\"异常\"的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种\"异常\"进行处理,堆栈就会展开,直到遇到有处理这种\"异常\"的try语句。下面是一个try语句嵌套的例子。
classMultiNest{staticvoidprocedure(){try{intc[]={1}:c[42]
=99;}catch(ArrayIndexOutOfBoundsexceptione)
{System.out.println(\"arrayindexoob:\"+e);}}publicstaticvoid
main(Stringargs[]){try{inta=args.length;system.out.println(\"a
=\"+a);intb=42/a;procedure();}catch(arithmeticExceptione)
{System.out.println(\"divby0:\"+e);}}}
成员函数procedure里有自己的try/catch控制,所以main不用去处理ArrayIndexOutOfBoundsException。