无法运行以下程序的try和catch

时间:2012-08-09 14:58:30

标签: java

public class exdemo1 {

    public static void main(String args[]) {
        int a = 10, b = 0, ans;
        int arr[] = {10, 20, 30};
        try {
            ans = a / b;
            System.out.println("Division" + ans);
            System.out.println("4th Element" + arr[3]);
        } catch (ArithmeticException ae) ;
            {
                System.out.println(ae);
            }
         catch (ArrayindexoutofboundsException ae) {
            System.out.println(ae);
        }
    }
}

5 个答案:

答案 0 :(得分:3)

既然您的代码格式正确,您可能会在第一个catch块之后注意到额外的;

答案 1 :(得分:2)

我不知道你究竟是什么意思,但这些是我注意到的问题:

  • 你的数组没有有第4个元素,它有3个元素,最后一个元素可以通过arr[2]访问
  • 你不能除以0。
  • catch (ArithmeticException ae) ;您必须删除该行末尾的;,您不需要那里。
  • ArrayindexoutofboundsException正确的课程是ArrayIndexOutOfBoundsException

由于catch语句,我假设你知道前两个。

修复那些应该使你的程序编译。

答案 2 :(得分:1)

是ArrayIndexOutOfBoundsException而不是ArrayindexoutofboundsException

答案 3 :(得分:0)

在第一次catch之后,你有一个额外的分号。删除它。另外,我认为ArrayindexoutofboundsException不是一个有效的例外,应该是ArrayIndexOutOfBoundsException

答案 4 :(得分:0)

您已将两个程序混合在一起,但只会抛出一个异常。你的程序基本上和

一样
public static void main(String... args) {
     int a = 10, b = 0;
     int ans = a / b;
}

这将打印抛出的异常。