我不熟悉java,最近我正在看一些让我感到困惑的同事编写的一些代码。 这是它的要点: public response newStuff(//random data inside) { try { response or = //gives it a value log.info(or.toString()); return or; } catch ( Exception e) { e.printStackTrace(); } finally { return null; } } 在这里添加finally块真的有什么意义吗? 我不能在catch块中添加返回null,这会执行相同的行为,或者我错了吗?
在Java中使用Readers和Streams总是让我感到困惑的事情之一是close()方法可能会抛出一个exception。 因为将close方法放在最后一个块中是一个好主意,所以需要一些尴尬的情况。 我通常使用这种结构: FileReader fr = new FileReader("SomeFile.txt"); try { try { fr.read(); } finally { fr.close(); } } catch(Exception e) { // Do exception handling } 但是我也看到了这样的结构: FileReader fr = new FileReader("SomeFile.txt"); try { fr.read() } catch (Exception e) { // Do exception handling } finally { try { fr.close(); } catch (Exception e) […]
虽然通过我的代码阅读,我注意到我的IDE列出警告与以下消息: 在JDK 7中的try块中报告相同的catch部分。quickfix可用于将部分折叠成多catch部分。 还指定为JDK 7+引发此警告 try块如下: try { FileInputStream e = new FileInputStream("outings.ser"); ObjectInputStream inputStream = new ObjectInputStream(e); return (ArrayList)inputStream.readObject(); } catch (FileNotFoundException var3) { var3.printStackTrace(); } catch (ClassNotFoundException var5) { var5.printStackTrace(); } catch (IOException ex){ ex.printStackTrace(); } 但是,当删除(抛出该特定警告的catch块): catch (ClassNotFoundException var5) { var5.printStackTrace(); } catch (IOException ex){ ex.printStackTrace(); } 我仍然会在以下错误: ObjectInputStream inputStream = new […]
我最近写了一个很好的Powershell脚本 – 但是,我想现在升级脚本并添加一些错误检查/处理 – 但是我似乎已经在第一个障碍难住了。 为什么下面的代码不工作? try { Remove-Item "C:\somenonexistentfolder\file.txt" -ErrorAction Stop } catch [System.Management.Automation.ItemNotFoundException] { "item not found" } catch { "any other undefined errors" $error[0] } finally { "Finished" } 错误被捕获到第二个catch块中 – 您可以看到$error[0]的输出。 很显然,我想在第一个方块中看到 – 我错过了什么? 谢谢
好的,这可能是一个很小的问题,但是我发现PHP文档和几个Internetsearch没有给我任何想法。 什么时候应该使用try-catch块来改进我的应用程序? 我读过一个人说,我们应该使用try-catch块来防止致命的错误。 我读别人说,我们应该只用于意外的错误(等待什么意外?如果他们是意想不到的错误,我怎么能阻止他们尝试赶上?我应该把我所有的应用程序代码在一个尝试块?)。 其他人只是说,try-catch块应该到处使用,因为它们也可以扩展(扩展Exception类)。 最后有人说PHP try-catch块是完全没用的,因为它们实现的很糟糕。 (在这个我发现一个很好的关于性能的SO问题)。 在我看来,这个话题是非常奇怪和困惑的。 有人能照亮我吗?
这是PowerShell 2.0中的try catch $urls = "http://www.google.com", "http://none.greenjump.nl", "http://www.nu.nl" $wc = New-Object System.Net.WebClient foreach($url in $urls) { try { $url $result=$wc.DownloadString($url) } catch [System.Net.WebException] { [void]$fails.Add("url webfailed $url") } } 但我想要做的就像在C# catch( WebException ex) { Log(ex.ToString()); } 这可能吗?
我一直在看代码,我看到尝试与资源。 我之前使用过标准的try-catch语句,看起来他们做的是一样的事情。 所以我的问题是尝试使用资源VS Try-Catch之间有什么区别,哪个更好。 这里是一个尝试与资源: objects jar = new objects("brand"); objects can= new objects("brand"); try (FileOutputStream outStream = new FileOutputStream("people.bin")){ ObjectOutputStream stream = new ObjectOutputStream(outStream); stream.writeObject(jar); stream.writeObject(can); stream.close(); } catch(FileNotFoundException e) { System.out.println("sorry it didn't work out"); } catch(IOException f) { System.out.println("sorry it didn't work out"); }
是否有可能在Swift中捕捉exception? 给出以下代码: NSException.raise(NSRangeException, format: "Now you've gone too far!", arguments: CVaListPointer(fromUnsafePointer: UnsafePointer())) 是否有可能防止例外崩溃整个程序? 也就是说Objective-C中下面的Swift等价物是什么: @try { [NSException raise:NSRangeException format:@"Now you've gone too far!"]; }
我一直在玩一个我正在开发的系统,并设法让它导致: 致命错误:超过30秒的最大执行时间 这发生在我做一些不切实际的事情时,但却可能发生在用户身上。 有谁知道是否有办法赶上这个例外? 我已经阅读,但似乎每个人都build议提高时间。
任何人都可以解释为什么在最后一行,br不被认为是variables? 我甚至尝试在try clause中设置br,将其设置为final等。这与Java不支持closures有什么关系? 我99%相信类似的代码将在C#中工作。 private void loadCommands(String fileName) { try { final BufferedReader br = new BufferedReader(new FileReader(fileName)); while (br.ready()) { actionList.add(CommandFactory.GetCommandFromText(this, br.readLine())); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) br.close(); //<– This gives error. It doesn't // know the br variable. […]