草庐IT

Try-catch

全部标签

java - 避免使用 try-catch 语句的充分理由

示例#1:try{fileChooser.setSelectedFile(newFile(filename));}catch(NullPointerExceptione){/*donothing*/}示例#2:if(filename!=null)fileChooser.setSelectedFile(newFile(filename));#1是出于性能或稳定性(或任何其他原因)本身就不好,还是只是有点不同?这不是一个很好的例子,因为#1与#2相比没有优势,但在不同的情况下可能会有优势(例如提高可读性、减少代码行等)。编辑:共识似乎是#1是一个禁忌。最常见的原因:开销另外,@RaphLe

java - 尝试捕捉性能 Java

try-catch在捕获异常而不是进行检查(假设消息具有用于查找的HashMap类型性能)时需要多长时间(以纳秒为单位)?try{timestamp=message.getLongField(MessageField.TIMESTAMP);}catch(MissingDataExceptione){//Notallmessagescontainthisfield}对比if(message.contains(MessageField.TIMESTAMP))timestamp=message.getLongField(MessageField.TIMESTAMP);

java - 在 try catch 中访问变量

我一直在returnmenuFont行收到编译错误,它说没有变量menuFont。有人可以告诉我如何解决这个问题。importjava.awt.Font;importjava.awt.FontFormatException;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;publicclassloadFiles{FontgetFont(){try{FontmenuFont=Font.createFont(Font.TRUETYPE_FONT,newFi

java - 我如何最好地 catch Java 的最新发展?

关闭。这个问题不满足StackOverflowguidelines.它目前不接受答案。想改善这个问题吗?更新问题,使其成为on-topic对于堆栈溢出。7年前关闭。Improvethisquestion我正在申请一份Java开发人员的工作。我在2001年之前用Java编写了一些业余应用程序,之后我主要使用C++和其他语言工作。同时,感觉java成长了很多,各种缩写(EJB,spring等)我都不知道。我在哪里可以找到对最近(5年)java发展的简洁明了的解释?要理解的关键要素是什么? 最佳答案 2001年?哇,时代变了。那是什么?J

java - 如何进入下一次迭代

这里是我想做的:在循环中,如果程序发现错误,它会打印出“Nothing”并进入下一个循环(跳过打印出“”Servicediscoveredatport:"+px+"\n"for(intpx=PORT1;px我应该在catch中放入什么代码?“休息”或“下一步”或???(这是java) 最佳答案 使用continue关键字:continue;它将中断当前迭代并从循环顶部继续。这里有一些进一步的阅读:continueKeywordinJava 关于java-如何进入下一次迭代,我们在Stac

java - 捕获 OutOfMemoryError 是个坏主意吗?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Catchingjava.lang.OutOfMemoryErrorOutOfMemoryError是:ThrownwhentheJavaVirtualMachinecannotallocateanobjectbecauseitisoutofmemory,andnomorememorycouldbemadeavailablebythegarbagecollectorJava说:AnErrorisasubclassofThrowablethatindicatesseriousproblemsthatareaso

java - try block 内语句的 Netbeans 声明性提示语法

我想检查并转换一个特定的语句为try-with-ressources形式。但我感觉declarativehintsformat的语法为此我避而不谈。我试过:try{$before$;someMethod($arg1,$arg2,$arg3);$after$;}catch$catches$=>try(Resourceres=acquire($arg1,$arg2,$arg3)){$before$;res.use();$after$;}catch$catches$但应用到我的代码中时,模式永远不会匹配。这是我希望匹配的一些示例代码部分:publicbooleanstep(Stringinp

java - 为什么 javac 不优化空的 try-finally block ?

我写了一个类classtest1{voidfoo(){}}还有一个有很多try和finally语句什么都不做的类:classtest2{voidfoo(){try{}finally{}try{}finally{}try{}finally{}try{}finally{}try{}finally{}}}使用javac(sun-jdk-1.6.0.37,linux-3.8.13-amd64)编译它们并与od比较文件。test1.class000000006614307154102016306256407216302006100517307301200000200645570201440675

java - 如果我使用多个 catch block ,为什么 java 没有检测到无法访问的 catch block ?

研究以下方法:staticprivatevoidfoo(){try{thrownewFileNotFoundException();}catch(FileNotFoundExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}尽管最后一个catchblock实际上无法访问,但这段代码编译良好。现在让注释thrownewFileNotFoundException();行执行:糟糕!我们看到了UnreachablecatchblockforFileNotFoundException.Thisexc

java - 捕获异常的数量是否会影响 try-code 的性能?

我经常读到,与普通代码相比,使用try-catch非常慢。现在我想知道捕获异常的数量是否会影响代码的性能。也是try{...}catch(StrangeExceptione){...}慢于try{...}catch(StrangeExceptione){...}catch(MysteriousExceptione){...}catch(FrighteningExceptione){...}?当然我只是指try-clause中的代码,如果没有异常被捕获。 最佳答案 你读到的是错误的。当真正抛出异常时会产生大量开销——通常在没有异常时开