如果没有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");
}
}
答案 0 :(得分:2)
无。 try..finally
块根本不会捕获异常。
它用于确保finally
块中的代码被执行(即使try
块中发生异常)。即使finally
中有return语句,try
块也会一直执行。
如果没有从计算机切断电源或突然关闭JVM(或者在某些情况下中断执行try
代码的线程),则无法跳过finally
块。< / p>
添加一个catch块来捕获异常:
try {
j=i/0;
} catch(Excecption e) {
e.printStackTrace();
} finally {
System.out.println("shit");
}
答案 1 :(得分:1)
Java中有三种类型的例外:
答案 2 :(得分:0)
JVM系统将捕获异常并且不合理地崩溃。添加except语句以处理异常或正常退出。
答案 3 :(得分:0)
尝试阻止
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/从中得到一些想法。