草庐IT

Try-Catch

全部标签

java - try catch block 的成本是多少?

有多好:if(condition){try{//something}catch(SomeExex){}}而不是这个:try{if(condition){//something}}catch(SomeExex){}当我进入tryblock时,JVM实际上做了什么?编辑:我不想知道在第二个例子中总是进去尝试...请回答问题。 最佳答案 在运行时明智地执行,只要没有异常,尝试就不会花费你任何东西。一旦发生异常,它只会花费运行时间。在那种情况下,它比if评估要慢得多。在JVM规范中,您看到执行路径上没有生成额外的字节代码:http://do

java - 在 Java 中捕获异常与抛出异常

这个问题在这里已经有了答案:WhentocatchtheExceptionvsWhentothrowtheExceptions?(8个答案)关闭3年前。所以我有两个关于java的一般性问题。第一个是什么时候在方法主体中使用try/catch与在声明方法时使用throws异常?这是我的意思的一个小例子。这:publicvoidwhileChatting()throwsIOException{}对比publicvoidcloseConnection(){try{}catch(IOExceptionioException){ioException.printStackTrace();}}然后

java - Java 中的 try-catch 和循环异常

在Java中,有什么区别(在性能方面):for(inti=0;i和try{for(inti=0;i 最佳答案 在您的第一个版本中,如果遇到异常,循环会继续,在第二个版本中,循环会在catchblock之后继续。这是这些代码片段最重要的区别。 关于java-Java中的try-catch和循环异常,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6324012/

java - 为什么在没有任何异常抛出的情况下处理 try-catch 根本不会减慢程序速度?

今天我意识到一些对我来说很奇怪的事情:我注意到当我只是这样做的时候try{doSomething();}catch(Exceptione){}一点也不比我做的慢doSomething();所以我运行了一个测试并写下了一些快速代码来证明我所看到的,代码基本上只是在一个名为doSomething()的函数上循环了很多次,一次没有,一次有try-catch围绕它。所以如果你想自己测试它,这里是它的代码:publicclassMain{privatestaticfinallongLOOPS=1000000L;publicstaticfinalvoidmain(String[]args){Sys

java - 尝试/最终阻止问题

找到这个问题here我不明白,为什么在第一种情况下打印CoolReturn+1而在第二种情况下打印CoolReturn?它是如何工作的?谢谢====================将打印什么?publicvoidtestFinally(){System.out.println(setOne().toString());}protectedStringBuildersetOne(){StringBuilderbuilder=newStringBuilder();try{builder.append("Cool");returnbuilder.append("Return");}final

java - 在构造函数中的 try-catch block 中分配最终字段

所以,我试图在构造函数中初始化一个DatagramSocket,我希望这个字段是final,但是我的编译器(即Eclipse)给了我以下错误:TheblankfinalfielddatagramSocketmaynothavebeeninitialized这是可以理解的。这是一个代码片段:publicclassFoo{privatefinalintDEFAULT_UDPLISTENPORT=49400;privatefinalDatagramSocketdatagramSocket;publicFoo(){synchronized(this){try{datagramSocket=ne

java - 抛出 UnsupportedOperationException

所以其中一个方法的描述如下:publicBasicLinkedListaddToFront(Tdata)Thisoperationisinvalidforasortedlist.AnUnsupportedOperationExceptionwillbegeneratedusingthemessage"Invalidoperationforsortedlist."我的代码是这样的:publicBasicLinkedListaddToFront(Tdata){try{thrownewUnsupportedOperationException("Invalidoperationforsort

java - 无法有效地使用 Java 中的 Multi Catch

这个问题在这里已经有了答案:WhatisaNumberFormatExceptionandhowcanIfixit?(9个回答)Whydoesordermatterwhencatchingexceptions?(8个答案)关闭6年前。我真的很想使用Java-1.7的功能。此功能之一是“Multi-Catch”。目前我有以下代码try{intId=Integer.parseInt(idstr);TypeInfotempTypeInfo=getTypeInfo(String.valueOf(Id));updateTotalCount(tempTypeInfo);}catch(NumberF

java - 为什么不能在 try 和 catch block 之间插入代码?

我在面试中被问到一个问题,如果我们将finallyblock放在try和catchblock之间会发生什么我回答在这种情况下,编译器会认为没有catchblock,它会直接执行finallyblock。然后他问为什么不能把代码放在try和catchblock之间?你能帮帮我吗... 最佳答案 好的,首先-编译器不执行代码,它只是编译它,允许它由JVM运行。从经验上讲,这没有多大意义,因为如果您有一些代码想放在tryblock之外但在catchblock之前,那么代码也可以放在tryblock中。问题是,如果您考虑的话,无论如何它的行

java - 为什么java.lang.AutoCloseable 的close 方法抛出Exception,而java.io.Closeable 的close 方法抛出IOException?

我正在读这个link对于try-with-resources它说:TheclosemethodoftheCloseableinterfacethrowsexceptionsoftypeIOExceptionwhiletheclosemethodoftheAutoCloseableinterfacethrowsexceptionsoftypeException.但是为什么?AutoCloseable的关闭方法也可能抛出IOException是否有任何示例支持AutoCloseable的关闭方法必须抛出类型为的异常异常 最佳答案 Aut