使用多个catch语句

所前所述,与一个try相关的catch语句可以有多个.事实上,这也是很常见的.然而这样一来,每一个catch语句就必须捕获一种不同类型的异常.例如,下面所示的程序即捕获数组越界异常,又捕获除以0异常:
public class test2
{
    // @param args
    public static void main(String args[])
    {
     int nums[] = {1,2,3,4,5,6};
     int denom[] = {2,3,0,4,0,4};
     
     for(int i=0;i<nums.length;i++)
     {
         try {
             System.out.println(nums[i]+"/"+denom[i]+"="+nums[i]/denom[i]);
         } catch(ArithmeticException exc) {
             System.out.println("can't divide by  zero!");
         } catch(ArrayIndexOutOfBoundsException  exc) {
             System.out.println("No matching  element found");
         }
     }
    }
}
正如输出所证实,每一个catch语句只对自己类型的异常做出响应.
一般来说,catch表达式按照在程序中出现的顺序被检查.只执行匹配的语句,忽略其他所有的catch代码块.