Java 如何在抛出异常后执行方法
如何在下面的程序中执行add()方法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=
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()方法?我在这里得到了正确的解释,解释了为什么会出现在给定的程序中。