如果catch和finallyblock都抛出异常会发生什么? 最佳答案 当finallyblock抛出异常时,它将有效地隐藏catchblock抛出的异常,并将成为最终抛出的异常。因此,重要的是在捕获时记录异常,或者确保finallyblock本身不会抛出异常,否则您可能会抛出被扼杀且从未见过的异常。 关于c#-如果catch和finallyblock都抛出异常会发生什么?,我们在StackOverflow上找到一个类似的问题: https://stac
我对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,这将执行相同的行为,还是我错了? 最佳答案
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,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
这个问题在这里已经有了答案:Closeresourcequietlyusingtry-with-resources(4个回答)关闭9年前。如果有错误,请纠正我:在Java7的try-with-resources语句中,资源的close()方法抛出的任何异常都必须声明为由我的方法抛出,或者我必须将整个尝试包装在另一个try中,它会捕获close()引发的任何异常。如果是这样,我想知道我是否会充分利用它。我当然不想throwclose()抛出的异常,调用者不知道该怎么做。而一个try包装另一个try只是为了处理close()至少对我来说看起来不是很优雅。编辑:我想我不小心问了两个问题,其中
这个问题在这里已经有了答案:Closeresourcequietlyusingtry-with-resources(4个回答)关闭9年前。如果有错误,请纠正我:在Java7的try-with-resources语句中,资源的close()方法抛出的任何异常都必须声明为由我的方法抛出,或者我必须将整个尝试包装在另一个try中,它会捕获close()引发的任何异常。如果是这样,我想知道我是否会充分利用它。我当然不想throwclose()抛出的异常,调用者不知道该怎么做。而一个try包装另一个try只是为了处理close()至少对我来说看起来不是很优雅。编辑:我想我不小心问了两个问题,其中
在阅读我的代码时,我注意到我的IDE列出了带有以下消息的警告:ReportsidenticalcatchsectionsintryblocksunderJDK7.Aquickfixisavailabletocollapsethesectionsintoamulti-catchsection.并且还指定针对JDK7+抛出此警告tryblock如下:try{FileInputStreame=newFileInputStream("outings.ser");ObjectInputStreaminputStream=newObjectInputStream(e);return(ArrayLi