public class TestException {
public void test(int i,int j) throws ArithmeticException{
int x=i/j;
}

public static void main(String[] arg0){
TestException te=new TestException();
te.test(9, 0);
}
}这是个测试类,test方法throws了ArithmeticException的异常,为什么在main方法里不用try{}catch(){}编译也能通过,eclipse也不会报说要用try catch包含.
一般情况下方法有throws的话,在调用这个方法时候不是要用try catch包含吗

解决方案 »

  1.   

    ArithmeticException是运行时异常是不需要显示catch的,看看java的异常机制,javadoc文档有
      

  2.   

    这个异常属于Runtime异常类,你可以不catch的,那个异常应该也不用try的
      

  3.   

    运行时异常。继承的是RuntimeException 不需要捕获的。
      

  4.   

    运行时异常。继承的是RuntimeException 不需要捕获的。
      

  5.   

    ArithmeticException这种异常,编译器不会马上提示您出错,它只有在运行的时候才会发生的异常
      

  6.   

    public class ArithmeticException
    extends RuntimeException
    当出现异常的运算条件时,抛出此异常。例如,一个整数“除以零”时,抛出此类的一个实例。
    -----------------------------------------------------------------------------
    以上是 jdk 上的解释
    如果,你抛出非 RuntimeException 时,需要 try/catch,比如 throws Exception
      

  7.   

    出现在方法后边的异常并不是说你必须得抓,可以抓也可以不抓,
    继承于Exception,但是不是继承与Runtime(也是继承于Exception)的异常你必须得抓。
      

  8.   

    出现在方法后边的异常并不是说你必须得抓,可以抓也可以不抓,
    继承于Exception,但是不是继承与Runtime(也是继承于Exception)的异常你必须得抓。
      

  9.   

    RuntimeException is the superclass of those exceptions that can be thrown during the normal operation of the Java Virtual Machine. 
    RuntimeException 是哪些能够在JVM正常操作中抛出的异常的父类
    A method is not required to declare in its throws clause any subclasses of RuntimeException that might be thrown during the execution of the method but not caught.
    一个方法不需要去申明抛出任何RuntimeException 类的子类,这些子类也许在这个方法执行期间抛出,但可以不用捕获
      

  10.   

    只要继承与Exception 但不是继承RutimeException的异常只要在方法的声明的throws子句中声明,
    都必须得捕捉。
      

  11.   

    运行时异常,可以不用try-catch