草庐IT

try-else

全部标签

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 - 用 Java-8 Streams 替换 'for' 循环中的 if-else

我尝试将以下简单代码转换为函数式样式for(Stringstr:list){if(someCondition(str)){list2.add(doSomeThing(str));}else{list2.add(doSomethingElse(str));}}是否可以轻松地将此循环替换为流?我看到的唯一选择是使用两个不同的过滤条件对流进行两次迭代。 最佳答案 听起来你可以在条件下使用map:Listlist2=list.stream().map(str->someCondition(str)?doSomething(str):doSo

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 - 在 For 循环增量中使用 if else

我在Java中遇到问题:Givenastring,returnastringmadeofthecharsatindexes0,1,4,5,8,9...我知道如何解决它,但是我想知道我是否可以在for循环增量本身中使用if-else,例如:for(inti=0;i我们可以做类似的事情吗? 最佳答案 你不能在那里使用if但你可以使用三元运算符for(inti=0;i 关于java-在For循环增量中使用ifelse,我们在StackOverflow上找到一个类似的问题:

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

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

orElse 的 Java 可选工作不像 else

在Optional中调用optional.orElse方法时,无论元素是否存在,orElse部分都会被执行,它不会像ifelse条件那样运行。在下面的代码中,如果您在情况1中看到getNullPoJo和getDefaultPoJo都被执行,因为getNullPoJo将返回空可选在情况2中,您将获得一个带有加载值的Optional(来自getLoadedPoJo),同时执行getDefaultPoJo我只是想了解optional.orElse的工作原理。publicstaticvoidmain(String[]a){PoJopoJo1=getNullPoJo().orElse(getDe

HarmonyOS/OpenHarmony应用开发-ArkTS语言渲染控制if/else条件渲染

ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态,使用if、else和elseif渲染对应状态下的UI内容。说明:从APIversion9开始,该接口支持在ArkTS卡片中使用。一、使用规则支持if、else和elseif语句。if、elseif后跟随的条件语句可以使用状态变量。允许在容器组件内使用,通过条件渲染语句构建不同的子组件。条件渲染语句在涉及到组件的父子关系时是“透明”的,当父组件和子组件之间存在一个或多个if语句时,必须遵守父组件关于子组件使用的规则。每个分支内部的构建函数必须遵循构建函数的规则,并创建一个或多个组件。无法创建组件的空构建函数会产生语法错误。某些容器组件