我对java不熟悉,最近看到一些同事写的代码让我很困惑。这是它的要点:publicresponsenewStuff(//randomdatainside){try{responseor=//givesitavaluelog.info(or.toString());returnor;}catch(Exceptione){e.printStackTrace();}finally{returnnull;}}在这里添加finallyblock真的有什么意义吗?我不能只在catchblock中添加returnnull,这将执行相同的行为,还是我错了? 最佳答案
我对java不熟悉,最近看到一些同事写的代码让我很困惑。这是它的要点:publicresponsenewStuff(//randomdatainside){try{responseor=//givesitavaluelog.info(or.toString());returnor;}catch(Exceptione){e.printStackTrace();}finally{returnnull;}}在这里添加finallyblock真的有什么意义吗?我不能只在catchblock中添加returnnull,这将执行相同的行为,还是我错了? 最佳答案
已结束。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。此问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭3年前。Improvethisquestion这是我的代码:packagebasic;publicabstractclassEntity{}packagecharacters;importbasic.Entity;publicabstractclassCharacterextendsEntity{}packageplayer;publiccla
已结束。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。此问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭3年前。Improvethisquestion这是我的代码:packagebasic;publicabstractclassEntity{}packagecharacters;importbasic.Entity;publicabstractclassCharacterextendsEntity{}packageplayer;publiccla
我想我已经读过字段上的final关键字保证如果线程1实例化包含该字段的对象,那么如果线程2具有对该对象的引用,那么线程2将始终看到该字段的初始化值(前提是其构造正确)。它还在JLS中说[Thread2]willalsoseeversionsofanyobjectorarrayreferencedbythosefinalfieldsthatareatleastasup-to-dateasthefinalfieldsare.(section17.5ofJLS)这意味着如果我有A类classA{privatefinalBb=newB();privateintaNotFinal=2;...和B
我想我已经读过字段上的final关键字保证如果线程1实例化包含该字段的对象,那么如果线程2具有对该对象的引用,那么线程2将始终看到该字段的初始化值(前提是其构造正确)。它还在JLS中说[Thread2]willalsoseeversionsofanyobjectorarrayreferencedbythosefinalfieldsthatareatleastasup-to-dateasthefinalfieldsare.(section17.5ofJLS)这意味着如果我有A类classA{privatefinalBb=newB();privateintaNotFinal=2;...和B
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭9年前.“finally”block总是在try-catch结束时执行,无论是否发生异常。但也总是执行try-catch之外和之后的每一行代码。那么,为什么要使用finally语句呢?例子:try{//code...}catch(Exceptione){//code...}finally{System.out.println("Thislineisalways
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭9年前.“finally”block总是在try-catch结束时执行,无论是否发生异常。但也总是执行try-catch之外和之后的每一行代码。那么,为什么要使用finally语句呢?例子:try{//code...}catch(Exceptione){//code...}finally{System.out.println("Thislineisalways
在做一个学校项目时,我编写了以下代码:FileOutputStreamfos;ObjectOutputStreamoos;try{fos=newFileOutputStream(file);oos=newObjectOutputStream(fos);oos.writeObject(shapes);}catch(FileNotFoundExceptionex){//complaintouser}catch(IOExceptionex){//notifyuser}finally{if(oos!=null)oos.close();if(fos!=null)fos.close();}问题是N
在做一个学校项目时,我编写了以下代码:FileOutputStreamfos;ObjectOutputStreamoos;try{fos=newFileOutputStream(file);oos=newObjectOutputStream(fos);oos.writeObject(shapes);}catch(FileNotFoundExceptionex){//complaintouser}catch(IOExceptionex){//notifyuser}finally{if(oos!=null)oos.close();if(fos!=null)fos.close();}问题是N