2013-08-22 36 views
-1

后,如何在程序中执行以下如何抛出一个异常

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(); 
    } 

} 

的add()方法为什么当我给throw语句在鸿沟的方法Add()不执行的执行方法() 方法。当throw被注释时,add()方法可以很好地执行。无论如何,这种异常也是使用throw引发的,并且方法继承它也会被执行。

+0

如果抛出异常,即使try-catch块中的代码行开头也没有意义。 –

+0

只需用'add()'替换'throw'语句 – Undefined

+1

为什么当控制永远达不到它时,你会期望执行add? –

回答

1

当你的throw例外,你基本上说“我不知道该怎么办”。所以异常会冒出来,直到它到达程序的最后一个堆栈帧,并且如果在这种情况下未处理,则会暂停该程序。

+0

我在这里得到了正确的解释intsead为什么从所有的程序给出。 –

0

因为从方法'分'你抛出一个例外。如果你想继续你需要赶上和重新抛出异常

+0

或者不是故意抛出异常。 –

+0

@ user2310289:假设try引发一个用户定义的异常,我们需要'抛出'异常来检查发生了什么,在这种情况下如何调用add()方法? –

0

throw 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(); 
     } 

    }