草庐IT

java - 带有 InputMismatchException 的 try/catch 创建无限循环

所以我正在构建一个从用户输入中获取整数的程序。我有一个看起来非常简单的try/catchblock,如果用户没有输入int,应该重复该block直到他们输入。这是代码的相关部分:importjava.util.InputMismatchException;importjava.util.Scanner;publicclassExcept{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);booleanbError=true;intn1=0,n2=0,nQuotient=0;do{try{Syste

java - 不能使用 try/catch block 处理 java 未经检查的异常吗?

在教程中我发现您的代码无法处理未经检查的异常,即我们不能使用try/catchblock和示例是ArrayIndexOutOfBoundsException,NullPointerException.之类的异常(exception)情况但是这些异常可以使用try/catchblock来处理。我想我不清楚这个概念!我还认为throw关键字只能与try/catch一起使用block.canthrow关键字与UncheckedException一起使用? 最佳答案 已检查异常和未检查异常之间的唯一区别是已检查异常必须使用throws在方法

java - 带返回值的 try{} finally{} 构造

这个问题在这里已经有了答案:Javatry-finallyreturndesignquestion(7个回答)DoesafinallyblockalwaysgetexecutedinJava?(51个回答)关闭7年前。我想知道为什么Java编译器会接受以下代码:publicclassMain{publicstaticvoidmain(String...args){System.out.println("a()="+a());}publicstaticStringa(){try{return"a";}catch(Throwablet){}finally{return"b";}}}这可以而

java - 为什么 try-with-resources 不能与字段变量一起使用?

这是我关于SO的第一个问题,我很困惑还没有类似的问题!所以问题是:Whydoesn'ttry-with-resourcesworkwithfieldvariables?或者换句话说:为什么我总是需要一个局部变量?这里有一些示例代码:publicclassFileWriteTest{publicFileWriterfile;publicvoidworkingDemo(){try(FileWriterfile=newFileWriter(newFile("someFilePath")){//dosomething}catch(IOExceptione){e.printStackTrace(

java - 为什么 try-with-resources catch block 是选择性可选的?

我读到try-with-resources中的catchblock是可选的。我尝试在try-with-resourcesblock中创建一个Connection对象,没有后续的catchblock,只是为了从eclipse中获取编译器错误:“由自动close()调用引发的未处理的异常类型SQLException。”由于可以在try-with-resources中使用的每个资源都实现AutoCloseable,因此在调用close()方法时可能会引发异常,我不'不明白catch子句如何是可选的,因为它不允许我跳过从close()捕获异常。AutoCloseable的具体实现是否有特殊要求

java - 在 Java 中,try、catch 和 finally 中的 return 是如何工作的?

我无法准确理解return在try、catch中的工作原理。如果我有try和finally而没有catch,我可以将return放入tryblock。如果我有try、catch、finally,我不能把return放在尝试block。如果我有一个catchblock,我必须将return放在try、catch之外,finallyblock。如果我删除catchblock和throwException,我可以将return放在tryblock内.它们究竟是如何工作的?为什么我不能将return放在tryblock中?带有try、catch、finally的代码publicintinser

java - 为什么要在没有 Catch 或 finally 的情况下编写 Try-With-Resources?

为什么要像下面的例子那样写TrywithoutaCatch或finally?protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=UTF-8");try(PrintWriterout=response.getWriter()){/*TODOoutputyourpagehere.Youmayusefollowingsample

java - Try With Resources vs Try-Catch

这个问题在这里已经有了答案:What'sthepurposeoftry-with-resourcesstatements?(7个回答)关闭2年前。我一直在查看代码,并且已经看到尝试使用资源。我以前使用过标准的try-catch语句,看起来他们做同样的事情。所以我的问题是TryWithResourcesvsTry-Catch它们之间有什么区别,哪个更好。这里是资源的尝试:objectsjar=newobjects("brand");objectscan=newobjects("brand");try(FileOutputStreamoutStream=newFileOutputStrea

java - Try-catch-finally 然后再次 try catch

我经常遇到这样的情况:-try{...stmts...}catch(Exceptionex){...stmts...}finally{connection.close//throwsanexception}finally内部仍然需要一个try-catchblock。克服这个问题的最佳做法是什么? 最佳答案 编写一个SQLUtils类,其中包含捕获和记录此类异常的staticcloseQuietly方法,然后酌情使用。你最终会得到如下内容:publicclassSQLUtils{privatestaticLoglog=LogFacto

java - 这是对 try/finally 的滥用吗?

鉴于多个return语句是可以接受的(我有点不同意,但letusdigress),我正在寻找一种更可接受的方式来实现以下行为:选项A:多次返回,重复代码块publicboolmyMethod(){/*...code...*/if(thisCondition){/*...codethatmustrunatendofmethod...*/returnfalse;}/*...morecode...*/if(thatCondition){/*...theSAMEcodethatmustrunatendofmethod...*/returnfalse;}/*...evenmorecode...*