草庐IT

try-catch-repeat

全部标签

java - 在 Java 中是否可以在同一个 catch block 中捕获两个异常?

这个问题在这里已经有了答案:CanIcatchmultipleJavaexceptionsinthesamecatchclause?(10个回答)关闭8年前。我需要捕获两个异常,因为它们需要相同的处理逻辑。我想做类似的事情:catch(Exceptione,ExtendsRuntimeExceptionre){//commonlogictohandlebothexceptions}是否可以避免在每个catchblock中重复处理程序代码? 最佳答案 Java7及更高版本Multiple-exceptioncatches受支持,从Ja

java - 我应该如何在 JDBC 中使用 try-with-resources?

我有一种使用JDBC从数据库中获取用户的方法:publicListgetUser(intuserId){Stringsql="SELECTid,nameFROMusersWHEREid=?";Listusers=newArrayList();try{Connectioncon=DriverManager.getConnection(myConnectionURL);PreparedStatementps=con.prepareStatement(sql);ps.setInt(1,userId);ResultSetrs=ps.executeQuery();while(rs.next())

java - 我应该如何在 JDBC 中使用 try-with-resources?

我有一种使用JDBC从数据库中获取用户的方法:publicListgetUser(intuserId){Stringsql="SELECTid,nameFROMusersWHEREid=?";Listusers=newArrayList();try{Connectioncon=DriverManager.getConnection(myConnectionURL);PreparedStatementps=con.prepareStatement(sql);ps.setInt(1,userId);ResultSetrs=ps.executeQuery();while(rs.next())

java - 为什么在 catch InterruptException block 中调用 Thread.currentThread.interrupt()?

为什么要在catchblock中调用Thread.currentThread.interrupt()方法? 最佳答案 这样做是为了保持状态。当您捕获InterruptedException并将其吞下时,您基本上可以防止任何更高级别的方法/线程组注意到中断。这可能会导致问题。通过调用Thread.currentThread().interrupt(),你设置了线程的中断标志,所以更高级别的中断处理程序会注意到它并可以适本地处理它。JavaConcurrencyinPractice在第7.1.3章:响应中断中更详细地讨论了这一点。它的规

java - 为什么在 catch InterruptException block 中调用 Thread.currentThread.interrupt()?

为什么要在catchblock中调用Thread.currentThread.interrupt()方法? 最佳答案 这样做是为了保持状态。当您捕获InterruptedException并将其吞下时,您基本上可以防止任何更高级别的方法/线程组注意到中断。这可能会导致问题。通过调用Thread.currentThread().interrupt(),你设置了线程的中断标志,所以更高级别的中断处理程序会注意到它并可以适本地处理它。JavaConcurrencyinPractice在第7.1.3章:响应中断中更详细地讨论了这一点。它的规

java - 在 catch 和 finally 子句中抛出异常

在大学的一个Java问题上,有一段代码:classMyExc1extendsException{}classMyExc2extendsException{}classMyExc3extendsMyExc2{}publicclassC1{publicstaticvoidmain(String[]args)throwsException{try{System.out.print(1);q();}catch(Exceptioni){thrownewMyExc2();}finally{System.out.print(2);thrownewMyExc1();}}staticvoidq()thr

java - 在 catch 和 finally 子句中抛出异常

在大学的一个Java问题上,有一段代码:classMyExc1extendsException{}classMyExc2extendsException{}classMyExc3extendsMyExc2{}publicclassC1{publicstaticvoidmain(String[]args)throwsException{try{System.out.print(1);q();}catch(Exceptioni){thrownewMyExc2();}finally{System.out.print(2);thrownewMyExc1();}}staticvoidq()thr

java - 在 try-with-resources block 中管理多个链接资源的正确习惯用法?

Java7try-with-resources语法(也称为ARMblock(AutomaticResourceManagement))在只使用一个AutoCloseable资源。但是,当我需要声明多个相互依赖的资源时,我不确定什么是正确的习惯用法,例如一个FileWriter和一个包装它的BufferedWriter。当然,这个问题涉及到一些AutoCloseable资源被包装的任何情况,而不仅仅是这两个特定的类。我想出了以下三个替代方案:1)我见过的天真的习惯用法是只在ARM管理的变量中声明顶级包装器:staticvoidprintToFile1(Stringtext,Filefil

java - 在 try-with-resources block 中管理多个链接资源的正确习惯用法?

Java7try-with-resources语法(也称为ARMblock(AutomaticResourceManagement))在只使用一个AutoCloseable资源。但是,当我需要声明多个相互依赖的资源时,我不确定什么是正确的习惯用法,例如一个FileWriter和一个包装它的BufferedWriter。当然,这个问题涉及到一些AutoCloseable资源被包装的任何情况,而不仅仅是这两个特定的类。我想出了以下三个替代方案:1)我见过的天真的习惯用法是只在ARM管理的变量中声明顶级包装器:staticvoidprintToFile1(Stringtext,Filefil

java - 在 catch block 内抛出异常 - 它会再次被捕获吗?

这似乎是一个编程101问题,我原以为我知道答案,但现在发现自己需要仔细检查。在下面这段代码中,第一个catchblock中抛出的异常会被下面的通用Exceptioncatchblock捕获吗?try{//Dosomething}catch(IOExceptione){thrownewApplicationException("Problemconnectingtoserver");}catch(Exceptione){//WilltheApplicationExceptionbecaughthere?}我一直认为答案是否定的,但现在我有一些可能由此引起的奇怪行为。大多数语言的答案可能都