java - 如果没有 catch block ,哪个异常处理程序将处理异常?

标签 java exception try-catch-finally

如果没有 catch block ,哪个异常处理程序将处理异常?

public class Doubt {

    public static void main(String arg[]) 
     {
        System.out.println("hi");
        int i=10;
        int j;
        try
        {
            j=i/0;//Arithmatic exception type object is created but no catch block  so who will catch d exception..
        }
        finally
        {
            System.out.println("shit");
        }

        System.out.println("program still running");

    }
}

最佳答案

没有。 try..finally block 根本不捕获异常。 它用于确保 finally block 中的代码得到执行(即使在 try block 中发生异常时)。 finally block 总是会被执行,即使在 try 中有 return 语句也是如此。

除非切断计算机电源或突然关闭 JVM(或在某些情况下中断执行 try 代码的线程),否则无法跳过 finally block 。

添加一个 catch block 来捕获异常:

try {
    j=i/0;
} catch(Excecption e) {
    e.printStackTrace();
} finally {
    System.out.println("shit");
}

关于java - 如果没有 catch block ,哪个异常处理程序将处理异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28480896/

相关文章:

java - finally 语句在 try/catch java 中不起作用?

Objective-c Try/Catch 没有捕捉到

java - RXJava BehaviorSubject 的 Asnyc 初始化

java - 需要测试静态Utils类

java - 如何从指定路径加载 .java 文件并检索其中声明的方法?

java - 为什么 finally 在 playframework renderbinary 之后不阻止执行?

java - android 通过http上传图片

java - 错误页面返回状态代码 200 默认响应

java - 自定义未经检查的异常不会导致抛出和调用方方法返回

json - 如何使用 HTTPsURLConnection 连接 Android