草庐IT

try-finally

全部标签

java - 在 try block 中分配最终变量

非常简短的问题:有没有更优雅的方法来做到这一点:Objecttmp;try{tmp=somethingThatCanFail();}catch(Failf){tmp=null;}finalObjectmyObject=tmp;//nowIhaveafinalmyObject,whichcanbeusedinanonymousclasses 最佳答案 您可以在其自己的方法中提取值的创建:finalObjectmyObject=getObjectOrNull();publicObjectgetObjectOrNull(){try{ret

java - 为什么? "Always declare user defined exceptions as final"

我使用Java源代码分析器分析了我正在处理的代码。其中一条警告是“始终将用户定义的异常声明为最终异常”。还有许多其他没有多大意义的警告,但这个警告让我有点困惑。我正在开发一个框架,我有一个根通用异常(比如FrameworkGenericException),对于其他异常,我只是从根异常中派生它们。所以我有一个框架的异常层次结构。我可能会扩展层次结构,但我认为这个警告告诉我不要有这样的层次结构,而是单独定义它们。那么我应该走哪条路,你有什么意见? 最佳答案 这可能是他们的标准做法:如果类不应该被继承,则将类声明为final,而且他们可

java - "Syntax error, insert "Finally"to complete TryStatement"是什么原因

我正在使用eclipse创建一个android应用程序,该应用程序获取手机上所有当前显示的应用程序的列表,但我收到一个我以前从未见过的错误。我的代码看起来是正确的,但在其中一个“}”括号中出现错误“语法错误,插入“最后”以完成TryStatement”,有人知道如何解决此错误吗?谢谢。 最佳答案 您需要有一个“catch”子句或一个“finally”来伴随您的尝试:try{//...somethingdangerous...}catch(IOExceptione){//...handleerrors...}finally{//...

java - Java Try/Catch block 的基准测试

我知道在执行程序时进入catchblock会产生一些显着的成本,但是,我想知道进入try{}block是否也有任何影响,所以我开始在谷歌中寻找答案,有很多意见,但是根本没有基准测试。我找到的一些答案是:Javatry/catchperformance,isitrecommendedtokeepwhatisinsidethetryclausetoaminimum?TryCatchPerformanceJavaJavatrycatchblocks但是他们没有用事实回答我的问题,所以我决定自己试试。这就是我所做的。我有一个这种格式的csv文件:host;ip;number;date;stat

Java `final` 类和模拟

这个问题在这里已经有了答案:Howtomockafinalclasswithmockito(28个答案)关闭12个月前。我正在开发一款编程游戏,玩家可以访问抽象类并扩展它来控制机器人的行为。因为它是一个编程游戏,所以我正在努力保护我的游戏基础设施,这样玩家就不会弄乱游戏,而不仅仅是我给他们的类(class);为此,我将大部分类(class)设为final,但现在我无法在单元测试中模拟它们(mockito+testNG)。所以我想知道,我该如何解决这个问题?有没有办法让类非最终测试,然后以某种方式在构建周期的后期自动“final-ize”它们(我使用maven以防它与答案)。我不想添加另

java - 为什么我们允许在 java 中有一个 final main 方法?

谁能告诉我在java中将main方法设置为final的用法。虽然这在java中是允许的publicstaticfinalvoidmain(String[]args){}我看不出将其设为最终版本有任何用处。反正它是静态的,所以我们不能覆盖它。 最佳答案 将final添加到静态方法中实际上可以有所作为。考虑以下代码:classA{publicstaticvoidmain(String[]args){System.out.println("A");}}classBextendsA{publicstaticvoidmain(String[]

Visual Studio Code报错:You are trying to start Visual Studio Code as a super user which isn‘t......

01、具体报错[root@localhost~]#codeYouaretryingtostartVisualStudioCodeasasuperuserwhichisn'trecommended.Ifthiswasintendedpleaseaddtheargument`--no-sandbox`andspecifyanalternateuserdatadirectoryusingthe`--user-data-dir`argument.02、报错原因不推荐以root账户启动vscode,需要添加参数03、解决方案[root@localhost~]#pwd/root#在root目录下[root

java - 在 Java 中,什么时候执行构造函数中的最后一个 block ?

例如:/***Constructor*/publicTest(InputStreamin){try{this.inputStream=in;}finally{inputStream.close();}}在创建Test对象后是否立即关闭传递给指导者的InputStream?还是在Test对象被销毁时关闭?我不知道如何在C++中实现类似于析构函数的东西。 最佳答案 它作为构造函数的一部分执行。在构造函数中执行的代码只是普通代码——那里没有奇怪的控制流。(我的意思是在调用父类(superclass)构造函数并运行变量/实例初始化器之后。)

java - GSON 是否应该被声明为 static final?

我在代码中使用JavaCallableFuture。下面是我的主要代码,它使用了future和callables-下面是我的主要代码,它使用了future和callables-publicclassTimeoutThread{publicstaticvoidmain(String[]args)throwsException{ExecutorServiceexecutor=Executors.newFixedThreadPool(5);Futurefuture=executor.submit(newTask());try{System.out.println(future.get(3,T

java.lang.IllegalAccessError : tried to access method com. google.common.collect.MapMaker.makeComputingMap();来自 WeldMessageConveyor

当我尝试在weblogic12上部署我的Web应用程序时出现以下异常:weblogic.application.ModuleException:java.lang.IllegalAccessError:triedtoaccessmethodcom.google.common.collect.MapMaker.makeComputingMap(Lcom/google/common/base/Function;)Ljava/util/concurrent/ConcurrentMap;fromclassorg.jboss.weld.logging.WeldMessageConveyoratw