class test_throw
{
 static void test()
 {
  int c;
  
  try
  {
   c=2/0;
  }
  catch(ArithmeticException e)
  {
   throw e;      //这里发现异常就应该处理了啊?为什么还要抛出去等其它方法处理呢?
  }
 
 } public static void main(String args[])
 {
  try
  {
   test();
  }
  catch(ArithmeticException e)
  {
   System.out.println("除数为零");
  } 
}

解决方案 »

  1.   

    有的时候需要自己订意异常,抛出异常 比如
    function 测试()
    {
         if(4>6)
           throw ("傻货")
    }
      

  2.   

    throw出去,让调用它的外层进行处理,或者更外层进行统一的异常处理
      

  3.   

    在test的方法中不对异常进行处理,而是抛出异常,然后由其他程序处理。这种情况例如,你在后台捕获了异常,但你想在页面上看到异常,这时你就需要抛出异常,然后由页面处理。
      

  4.   

    catch以后重新throw是有必要的,这种用法也很常见。
    但你的这个程序一定是刻意为之的,因为ArithmeticException本来就是个RuntimeException,不需要catch,重新抛出就更没有必要了。
      

  5.   

    有这样一种可能,在catch中懒得处理了,但是又不想不处理这个异常,就用throw让外层的代码来异常处理
      

  6.   

    虽然ArithmeticException是一个RuntimeException,不用catch,但为了程序的清晰性和易维护,还是用个catch比较好。