我有两个方法,A和B,A调用B,当B方法执行到
XSSFWorkbook wb = new XSSFWorkbook();时,后面的代码都没有执行,也没进行Catch中,就直接跳入到A方法的finally 中。请高手指教这是为什么?
A(){
try{
b();
}cathc(Exception e){
System.out.print("error");
}finally {
System.out.print("finally ");
}
B() throws Exception {
try{
XSSFWorkbook wb = new XSSFWorkbook();
System.out.print("new XSSFWorkbook ");
...
}catch(Exception e) {
System.out.print("Exception ");
}
}
什么情况下,JAVA中执行代码出异常时不经过Catch而直接跳入finally
有一种可能会出现没有catch异常的情况:当抛出的不是Exception及其子类时,catch(Exception e)将无法捕获该异常。请看如下代码:public static void main(String[] args) throws Throwable { try{ throw new Throwable(){ };} catch(Exception e){ System.out.println("err");} finally{ System.out...
java中异常处理时为什么可以只要try-finally,而可以不要catch啊。
①当try没有捕获到异常时:try语句块中的语句逐一被执行,程序将跳过catch语句块,执行finally语句块和其后的语句。②当try捕获到异常,catch语句块里没有处理此异常:这种情况下,该异常将会抛给JVM处理,finally语句块里的语句还是会被执行,但finally语句块后的语句不会被执行。③当try捕获到异常,catch...
java中,有try没catch有finally怎么用?
有try 和finally没catch,有异常将抛出,但不会提示你,finally里的东西都会执行,finnally主要是关闭数据库用的,你以后就会明白try{}catch+finally的用法
...executeQuery查询的时候语句出错会不进catch里呢,如图啊!
其实是return 和finally执行先后的问题,因为你的catch里面只有一句return,如果先执行return了,就直接跳出方法了,因此,这里会先走到finally,最后执行catch里的return。你可以在catch里面return之前多加几行代码,测试一下。
【Java】finally用法
首先,我们了解finally块会执行的几种情况:当try部分无异常时,finally总是执行。 无论try部分有无异常,只要存在catch块,finally也会执行。 无论try和catch部分有无异常,只要finally中不包含return语句,finally总是执行。 如果try部分有返回值,执行后返回"try return"。 如果catch部分有...
Java里try catch的简单用法
Java中的try-catch结构用于处理程序运行时可能出现的异常。其基本用法是:1. 当代码在try块中执行,如果遇到异常,程序会立即跳转到相应的catch块进行异常处理。处理完异常后,catch块后的语句会继续执行。如果try块中没有异常,catch块会被跳过。扩展部分:2. 在try-catch-finally结构中,程序流程如下:...
求教大神,java中的jdbc程序为什么要加finally,不是加了try catch以后...
与其他语言的模型相比,finally 关键字是对 Java 异常处理模型的最佳补充。finally 结构使代码总会执行,而不管有无异常发生。使用 finally 可以维护对象的内部状态,并可以清理非内存资源。 如果没有 finally,您的代码就会很费解。finally 块必须与 try 或 try\/catch 块配合使用。此外,不可能退出 try ...
请问在java里有try但没有catch对不对
要看具体情况,java里的异常分2种,运行时异常和非运行时异常,如果是运行时异常,也就是不 强制catch的异常,可以省略catch,直接try finally 否则,如果不catch该异常或者没有在方法中throws,编译无法通过,也就是说要看具体的异常
java 异常不处理会怎么样
一旦出现异常,Exception会一层一层地从被调用处向调用处一直抛,直到有处理异常的方法处理了这个异常。第二种:仅仅是try{}catch(){},或者仅仅是throws 只要try了,不管是catch 还是 finally,try里面的语句都是执行到出异常的那一句,然后跳出try块,接着往catch、finally和finally之后的语句执行 ...
java中try和catch的具体作用
然后把异常交给catch{}里面的代码去处理,最后执行finally之中的代码。无论try中代码有没有异常,也无论catch是否将异常捕获到,finally中的代码都一定会被执行。例如:当除数为0时,编译不会报错,如果没有try\/catch的话,程序直接崩溃。用try\/catch的话,则可以让程序运行下去,并且输出为什么出错。