Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在抛出异常后执行方法_Java_Exception_Exception Handling - Fatal编程技术网

Java 如何在抛出异常后执行方法

Java 如何在抛出异常后执行方法,java,exception,exception-handling,Java,Exception,Exception Handling,如何在下面的程序中执行add()方法 class ExceptionHandlingImpl { static void divide() { try { double a= 1/0; } catch(Exception e) { throw e; } } static void add() { int a=20,b=

如何在下面的程序中执行add()方法

class ExceptionHandlingImpl
{
  static void divide()
   {
      try
      {
        double a= 1/0;
      }
      catch(Exception e)
       {     
         throw e;        
       }
   }

  static void  add()
    {
      int a=20,b=30,c;
      c=ab+b;
      System.out.println(c);
    }

 public static void main(String args[])
  {
    divide();
    add();
  }

}

当我在divide()方法中给出throw语句时,为什么add()方法不执行。当抛出被注释时,add()方法执行得很好。是否存在这样的情况:异常也会使用抛出抛出,并且随后的方法也会被执行

因为您正在从“divide”方法引发异常。如果您想继续,您需要捕获并重新抛出异常

当您
抛出异常时,您基本上是在说“我不知道该做什么”。因此,异常会冒泡,直到到达程序的最后一个堆栈帧,如果像本例中那样未处理,则会在该点停止程序。

抛出e;将引发异常并使程序崩溃

 public class test
    {
      static void divide()
       {
          try
          {
            double a= 1/0;
          }
          catch(Exception e)
           {     
            System.out.println(e);        
           }
       }

      static void  add()
        {
          int a=20,b=30,c;
          c=a+b;
          System.out.println(c);
        }

     public static void main(String args[])
      {
        divide();
        add();
      }

    }

如果您正在抛出异常,那么在try-catch块中使用该行代码也没有意义。只需将
throw
语句替换为
add()
为什么您希望在控件从未到达时执行add???@HotLicks:我对异常处理是新手,我在这里尝试过这种方法。现在,我从这里发帖得到了答案。或者说,我不是故意首先抛出异常。@user2310289:假设try抛出了一个用户定义的异常,我们需要“抛出”异常来检查发生了什么,在这种情况下,如何调用add()方法?我在这里得到了正确的解释,解释了为什么会出现在给定的程序中。