草庐IT

try-else

全部标签

java - 用状态/策略模式替换 if/else 逻辑

我已经阅读了之前关于用状态/策略模式替换Java中的条件逻辑(例如IF/ELSE)的堆栈交换,但我不确定我的案例是否适合替换。这里有耦合我看了-LonglistofifstatementsinJava和Convertingmany'ifelse'statementstoacleanerapproach我实际上是在编写一个文件下载管理器,这些是我的IF/ELSE结构:如果文件和它的zip文件存在,则将zip文件移动到zip文件目录并读入文件如果zip文件存在则解压文件并将zip文件移动到zip文件目录并读入文件如果zip文件不存在则从指定的URL下载它然后解压缩并读入文件并将zip文件移

java - 内存不足错误 : Java heap space when trying to read large file

我正在尝试读取大文件(大约516mb),它有18行文本。我试着自己写下代码,在尝试读取文件时在第一行代码中出错:try(BufferedReaderbr=newBufferedReader(newFileReader("test.txt"))){Stringline;while((line=br.readLine())!=null){StringfileContent=line;}}注意:文件存在且大小约为516mb。如果有另一种更安全更快的读取方法请告诉我(即使它会换行)。编辑:在这里我尝试使用Scanner,但它持续的时间稍长,然后给出相同的错误try(BufferedReader

java - 捕获异常的数量是否会影响 try-code 的性能?

我经常读到,与普通代码相比,使用try-catch非常慢。现在我想知道捕获异常的数量是否会影响代码的性能。也是try{...}catch(StrangeExceptione){...}慢于try{...}catch(StrangeExceptione){...}catch(MysteriousExceptione){...}catch(FrighteningExceptione){...}?当然我只是指try-clause中的代码,如果没有异常被捕获。 最佳答案 你读到的是错误的。当真正抛出异常时会产生大量开销——通常在没有异常时开

java - Java 中的 try-catch 语法糖

我想知道在java中是否有一种方法(纯代码,而不是一些Eclipse的东西)来“语法糖”重复的trycatch代码。也就是说,我必须包装一堆函数publicvoidfoo(){try{//bla}catch(Exceptione){System.out.println("caughtexception:");e.printStackTrace();}}publicvoidbar(){try{//otherbla}catch(Exceptione){System.out.println("caughtexception:");e.printStackTrace();}}等等。我想写@ex

java - 通过ASM在字节码中添加try/catch block

我是ASM的新手,我需要一些与字节码转换相关的帮助。问题:我想通过ASM为字节码中的整个方法添加try/catchblock,并希望在不使用java-noverify选项的情况下运行该方法。我可以为整个方法添加try/catchblock,但是当我尝试执行该方法时出现“java.lang.VerifyError”。如果我使用java-noverify选项,那么它将运行。请帮助我。下面是详细信息。publicclassExample{publicstaticvoidhello(){System.out.println("Helloworld");}}我想将上面的代码转换为如下引入try/

java - ifPresent Stream 的 Else 方法

这个问题在这里已经有了答案:Ifnotnull-java8style(2个答案)关闭7年前。我想知道如果在过滤流后某些值不存在时如何执行某些行为。让我们假设代码:foo.stream().filter(p->p.someField==someValue).findFirst().ifPresent(p->{p.someField=anotherValue;someBoolean=true;});我如何放置某种类型的Else在ifPresent之后如果值不存在?有一些orElse我可以在findFirst之后调用的Stream上的方法,但我看不到用那些orElse来做到这一点的方法

java - 在 try block 中返回 vs 在 block 后返回

我在一个小型静态方法中有一个try语句,是否有关于我应该从哪里返回的最佳实践?try{mightThrow();returntrue;}catch(Exceptione){returnfalse;}或之后,try{mightThrow();}catch(Exceptione){returnfalse;}returntrue;在功能上,这些应该执行相同,实际上有字节码差异吗?性能方面,它们完全相同吗?或者只是一个比另一个更受欢迎?哪个以及为什么? 最佳答案 我还没有听说过这方面的实际最佳实践,但您经常会看到,当方法使用过早返回时,返回

java - Java 6 中 if/or 与 try/catch 的复合成本

我们目前有以下复合if语句...if((billingRemoteService==null)||billingRemoteService.getServiceHeader()==null||!"00".equals(billingRemoteService.getServiceHeader().getStatusCode())||(billingRemoteService.getServiceBody()==null)||(billingRemoteService.getServiceBody().getServiceResponse()==null)||(billingRemote

Java:Try/Catch 语句:捕获到异常时,是否重复 try 语句?

这个问题在这里已经有了答案:Howdoyouimplementare-try-catch?(29个答案)关闭4年前。有什么办法吗?//Examplefunctiontakinginfirstandlastnameandreturningthelastname.publicvoidlastNameGenerator()throwsException{try{StringfullName=JOptionPane.showInputDialog("Enteryourfullname");StringlastName=fullName.split("\\s+")[1];catch(IOExce

Java try-finally 竞争条件?

很多Java资源使用示例如下所示:Resourcer=openResource();try{//useresource}finally{r.close();}r的声明必须在try子句之外才能在finally子句中可见,但这也使得看起来可能存在竞争条件:如果在openResource()调用和进入try子句之间出现线程中断怎么办?这是否意味着资源不会在那种情况下实际上被关闭?或者Java是否保证try-finally会“完全”覆盖r,尽管语法看起来不会?或者我必须写:Resourcer=null;try{r=openResource();//useresource}finally{if(