如果没有catch块,哪个异常处理程序将处理该异常



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

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块根本不捕获异常。它用于确保finally块中的代码得到执行(即使在try块中发生异常时)。即使try中有返回语句,finally块也将始终执行。

除了切断计算机电源或突然关闭JVM(或者在某些情况下中断执行try代码的线程)之外,没有办法跳过finally块。

添加捕获块以捕获异常:

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

Java中有三种类型的异常:

  1. 选中-你被迫使用try-catch块,如果你不这样做-你的程序将不会编译
  2. 未选中(运行时异常)-这些异常由jre引发。在您的示例中,您不能在编译时确定所有内容。可以用一些数字除以用户输入,而不是你的i/0。当用户传递0时,您将获得运行时异常。未经处理将使应用程序崩溃
  3. 错误-通常情况下,这与上面的几乎相同,但这与jvm故障有关,如内存损坏等

JVM系统将捕获异常并意外崩溃。添加except语句以处理异常或正常退出。

尝试阻止

try块包含一组可能发生异常的语句。try块后面总是跟有catch块,catch块处理相关try块中发生的异常。try块后面必须跟catch块或finally块,或者两者都跟。

捕获块

catch块是处理异常的地方,这个块必须跟在try块后面。一个try块可以有多个catch块与之关联。您可以在不同的catch块中捕获不同的异常。当try块中发生异常时,处理该特定异常的相应catch块将执行。例如,如果try块中发生算术异常,则执行包含在catch块中的算术异常语句。

https://beginnersbook.com/2013/04/try-catch-in-java/从中得到一些想法。。

相关内容

  • 没有找到相关文章

最新更新