草庐IT

Try-Except-Finally

全部标签

java - 奇怪的 "Resource leak: stream is never closed"如果在循环中抛出异常,则使用 try-with-resources

即使我使用try-with-resources,为什么Eclipse对以下代码发出奇怪的“资源泄漏:zin从未关闭”警告:Pathfile=Paths.get("file.zip");//Resourceleakwarning!try(ZipInputStreamzin=newZipInputStream(Files.newInputStream(file))){for(inti=0;i如果我修改代码中的“任何内容”,警告就会消失。下面我列出了3个修改后的版本,它们都可以(没有警告)。Mod#1:如果我从tryblock中删除for循环,警告就会消失://ThisisOK(nowarn

java - 使用 try/catch 而不是多个 IF 语句更好吗?

例如,在Java中使用try/catchblock而不是使用多个If语句来检查用户输入是否更好、更便宜或更具可读性?解析Date字符串的例子,直接使用try/catchblock解析而不是编写多个语句来查找非法字符不是更好吗?在另一个例子中,假设我想读取一个文件或流,而不是使用Scanner,我只是强制该方法并等待异常发生。这是一种健康的编程方法吗?它在虚拟机上更便宜吗?更新这是我在usingDateFormatexception时的意思的示例,有时捕获错误可能是一个真正的问题,并且在这样做时,您能否保证您的复杂(通常不可读)代码容易出错? 最佳答案

Java:如何编写 try-catch-repeat block ?

我知道执行此操作的反方法。我想知道是否有一种简洁的方法可以做到这一点。 最佳答案 图例-您的答案可以改进;因为如果你失败了numTries次,你就会吞下异常。好多了:while(true){try{//break;}catch(Exceptione){if(--numTries==0)throwe;}} 关于Java:如何编写try-catch-repeatblock?,我们在StackOverflow上找到一个类似的问题: https://stackover

java - 是否每个异常都有一个必需的 try-catch?

一个简单的问题,我找不到答案。Java中的每个异常都需要使用try-catch吗?还是仅针对FileNotFoundException?很多异常(IndexOutOfBoundException、ArithmeticException、IlligalArgumentException、NullPointerException)都说他们不需要异常,但FileNotFoundException需要)...我找不到答案,哪些需要,哪些不需要尝试捕捉。 最佳答案 并非绝对需要为异常设置一个try/catchblock。相反,您可以将它们th

java - Try-catch-finally 的执行顺序似乎是随机的

这个问题在这里已经有了答案:WhydoestheexecutionorderbetweentheprintStackTrace()andtheothermethodsappeartobenondeterministic?(1个回答)关闭7年前。我正在尝试了解try-catch-finally执行流程的工作原理。StackOverflow用户针对他们的执行流程提供了一些解决方案。一个这样的例子是:try{//...somecode:A}catch(...){//...exceptioncode:B}finally{//finallycode:C}CodeAisgoingtobeexecu

java - 中断的 Java 线程真的可以跳过 finally 子句吗?

当我从theOracleJavatutorial读到这篇文章时,我正在调查一个经常重复的谣言,即JVM上的守护线程以某种特殊方式处理finallyblock(他们不这样做,好吗?):Note:IftheJVMexitswhilethetryorcatchcodeisbeingexecuted,thenthefinallyblockmaynotexecute.Likewise,ifthethreadexecutingthetryorcatchcodeisinterruptedorkilled,thefinallyblockmaynotexecuteeventhoughtheapplica

java - 如果运行该函数的线程被中断,finally block 是否会执行?

如果我有一个带有try/finally部分的函数,并且运行它的线程在tryblock中被中断,finallyblock是否会在中断实际发生之前执行? 最佳答案 AccordingtotheJavaTutorials,"如果执行try或catch代码的线程被中断或杀死,则finallyblock可能不会执行,即使整个应用程序也是如此继续。”全文如下:Thefinallyblockalwaysexecuteswhenthetryblockexits.Thisensuresthatthefinallyblockisexecutedeven

java - finally block 没有 try and catch 是否有效?

我试图在不使用try/catchblock的情况下使用finallyblock,但在Eclipse中出现错误。我可以在不使用try/catchblock的情况下使用finallyblock吗? 最佳答案 finally应该至少有一个tryblock,catch是可选的。finallyblock的目的是确保无论是否抛出异常,都可以清除内容。根据JLSAfinallyclauseensuresthatthefinallyblockisexecutedafterthetryblockandanycatchblockthatmightbee

java - 我可以避免这种麻烦的 try...catch block 吗

通常在处理JavaIO代码时,我是这样写的FileOutputStreamout=null;try{out=newFileOutputStream("myfile.txt");//Moreandmorecodegoeshere...}catch(Exceptione){}finally{//Iputtheclosecodeinfinallyblock,toenturetheopened//filestreamisalwaysclosedeventhereisexceptionhappened.if(out!=null){//Anothertrycatchblock,troublesom

python - Pandas SQL 中 EXCEPT 子句的类似物是什么?

我有一个样本pandas数据框df:col1col2col3col40a1.02.031bNaNNaN62cNaN8.093dNaN11.0124e13.014.0155f17.018.0196g21.022.023还有第二个df1:col1col2col3col40a1.02.034e13.014.0155f17.018.0196g21.022.023我想得到df中不与df1重叠的子集。实际上,我正在寻找SQL中EXCEPT操作数的等价物。我使用了subtract()函数——但这显然是错误的,因为subtract执行逐元素数值减法。所以我收到一条错误消息:TypeError:unsu