相关疑难解决方法(0)

finally块总是在Java中执行吗?

考虑到这一点的代码,我可以绝对肯定的是,finally块总是执行,不管something()是什么?

try {  
    something();  
    return success;  
}  
catch (Exception e) {   
    return failure;  
}  
finally {  
    System.out.println("I don't know if this will get printed out");
}
Run Code Online (Sandbox Code Playgroud)

java return try-catch-finally

2281
推荐指数
38
解决办法
48万
查看次数

try-catch-finally,返回后再返回

我知道如何尝试,捕获和最终工作(大多数情况下),但我有一件事我想知道:在try-catch-finally之后返回语句会发生什么,而我们已经在try(或者catch)中返回了)?

例如:

public boolean someMethod(){
    boolean finished = false;
    try{
        // do something
        return true;
    }
    catch(someException e){
        // do something
    }
    finally{
        // do something
    }
    return finished;
}
Run Code Online (Sandbox Code Playgroud)

假设在尝试中没有出错,所以我们返回true.然后我们将进入最后我们做的事情,比如关闭连接,然后呢?

在我们在finally中做了一些东西之后,方法会停止吗(所以方法在try中返回true),或者方法会在finally之后继续,导致返回完成(这是假的)?

在此先感谢您的回复.

java return finally try-catch try-catch-finally

20
推荐指数
2
解决办法
1万
查看次数

在eclipse中按下停止按钮时是否会调用finally()?

我确定这个问题之前已经被问过了,但是在谷歌搜索之后我找不到任何东西.

这是我的情况,我有多个线程写入文件,一个主线程创建一个打印编写器并处理创建文件并关闭try/catch循环中finally块内的print writer.当我在eclipse中运行应用程序时,我会按下stop/terminate按钮,文件没有写入任何内容.我想确保我在这里做的一切都是正确的,或者在执行终止时有更好的方法来处理关闭打印编写器.哎呀,如果有更好的方法来处理多个线程写入文件,我很欢迎这个建议(我现在对多线程编程非常糟糕).

java eclipse multithreading printwriter

8
推荐指数
1
解决办法
545
查看次数

了解基本的Java特定的interverview问题

最后一天,我接受了一次采访,他们问我java问题,其中一些问题我不知道答案.我很想知道这个问题的答案.采访者没有告诉我答案.我在这里问这个问题:

  • Java是否提供任何构造来查找对象的大小?
  • 提供一种最简单的方法来查找方法执行所需的时间而不使用任何分析工具?
  • 什么是检查异常和运行时异常?
  • 如果我在try块结束时写return,finally块是否仍会执行?
  • 如果我写System.exit(0); 在try块的末尾,finally块是否仍会执行?

想知道上述问题的答案,以便下次可以帮助我.

只需简单的答案,我们就会非常感谢对规范的说明,注释和/或相关链接 - 以及学习这些东西的好方法是什么?

java

7
推荐指数
1
解决办法
1450
查看次数

System.exit()结果无法执行finally块

我正在努力 My application's under maintanace module

try {
    if (isUndermaintanace) {
        System.exit(1);
    } else {
        prepareResources();
    }           
} catch (Exception e) {
    printStack(e);
} finally {
    cleanResources();
}
Run Code Online (Sandbox Code Playgroud)

当我通过 isundermaintanace true 最后没有执行.

我错过了什么?还有其他办法吗?

java try-catch-finally system.exit

6
推荐指数
1
解决办法
6862
查看次数

代码永远不会清除的情况()

try {
    if (check) {
        while (true) ;
    } else {
        System.exit(1);
    }
} finally {
    clear();
}
Run Code Online (Sandbox Code Playgroud)

问:有clear()没有永远不会被执行的情况?我个人觉得没有clear()不会执行的情况。

java

5
推荐指数
1
解决办法
93
查看次数

在循环中使用try-finally块

我试图理解当我最终在while循环中使用时的机制.在下面的代码中.在最后的行打印和比休息时间.我期待代码不会到达finally块.或者,如果它到达finally块,那里就没有中断,所以while应该继续..任何人都可以解释这是如何工作的?

         while(true){
            System.out.println("in while");

            try{
                break;
            }finally{
                System.out.println("in finally");
            }

        }
        System.out.println("after while");
Run Code Online (Sandbox Code Playgroud)

输出是

in while
in finally
after while
Run Code Online (Sandbox Code Playgroud)

java break while-loop try-finally

5
推荐指数
1
解决办法
2126
查看次数

代码未达到"最终"阻止

给定的java代码不会进入finally块,我认为无论如何都应该执行这些块:

public static void main(String[] args) {
    try {
        System.out.println("Hello world");
        System.exit(0);
    } finally {
        System.out.println("Goodbye world");
    }
}
Run Code Online (Sandbox Code Playgroud)

java

3
推荐指数
1
解决办法
301
查看次数

在下列情况下最终阻止会发生什么?

如果我有以下代码

      try{

           //some code

      }catch(Exception e){

           //some code

      }finally{

      }
Run Code Online (Sandbox Code Playgroud)

在以下情况下,finally块会发生什么

  1. 如果发生任何已检查的异常

  2. 如果调用System.exit().

  3. 如果发生任何未经检查的异常

  4. 如果发生任何错误.

java

2
推荐指数
1
解决办法
698
查看次数