Tag: try catch finally

最后如何使用

我从来没有正确理解最后声明的使用。 谁能告诉我之间的区别是什么: try { a; block; off; statements; } catch (Exception e) { handle; exception; e; } finally { do; some; cleanup; } 一方面: try { a; block; off; statements; } catch (Exception e) { handle; exception; e; } do; some; cleanup; 在另一

为什么使用终于在尝试…赶上

我看到Finally in Try .. Catch将总是在执行try catch块的任何部分之后执行。 是否有什么不同,只是跳过Finally一节,只是之后,在try catch块之外运行? 示例1,Try … Catch … Finally … End Try Try 'Do something Catch ex As Exception 'Handle exception Finally 'Do cleanup End Try 例2,尝试…赶上…结束尝试…做最后的东西外面 Try 'Do something Catch ex As Exception 'Handle exception End Try 'Do cleanup

使用资源Try-Catch时IntelliJ IDE给出错误

我正在尝试使用JDK 7的“try-catch with resources”语句; IntelliJ强调我的资源线,说 此语言级别不支持“试用资源”。 当我尝试编译时,我得到: java:try-with-resources在-source 1.6中不受支持(使用-source 7或更高来启用try-with-resources) 我检查了为我当前的项目启用了try-with-resources,并且我的项目使用了JDK 7(库:C:\ Program Files \ Java \ jdk1.7.0_11)。 有任何想法吗? 我不知道要改变什么select(如果这甚至是问题)。

如何在不引发Javaexception的情况下从try / catch块中断开

我需要一种方法来从try / catch块的中间打破,而不会引发exception。 与break相似的东西,继续for循环。 这可能吗? 我已经越来越奇怪通过抛出一个自定义的exception(命名为“BreakContinueException”),简单地在其捕获处理程序中没有做任何事情。 我相信这是非常扭曲的。 那么,我还没有意识到任何直接的解决scheme?

是一个没有捕获块java终止模式的反模式?

我在解决一些看起来像这样的代码时遇到了非常痛苦的故障排除经验: try { doSomeStuff() doMore() } finally { doSomeOtherStuff() } 问题很难排除,因为doSomeStuff()抛出一个exception,这又导致doSomeOtherStuff()也抛出一个exception。 第二个exception(由finally块引发)被抛出到我的代码,但它没有处理第一个exception(从doSomeStuff()抛出),这是问题的真正根源。 如果代码是这样说的话,那么问题就显而易见了: try { doSomeStuff() doMore() } catch (Exception e) { log.error(e); } finally { doSomeOtherStuff() } 所以,我的问题是这样的: 是不是一个知名的Java反模式使用没有任何catch块的finally块? (这当然似乎是一个显而易见的反模式的不明显的子类“不要吞噬例外!”)

Eclipse的警告“终于阻止不正常完成”

Eclipse给我在下面的代码警告: public int getTicket(int lotteryId, String player) { try { c = DriverManager.getConnection("jdbc:mysql://" + this.hostname + ":" + this.port + "/" + this.database, this.user, this.password); int ticketNumber; PreparedStatement p = c.prepareStatement( "SELECT max(num_ticket) " + "FROM loteria_tickets " + "WHERE id_loteria = ?" ); p.setInt(1, lotteryId); ResultSet rs = p.executeQuery(); if (rs.next()) { ticketNumber = […]

为什么最后使用代码而不是代码

为什么这样做 } catch (SQLException sqle) { sqle.printStackTrace(); } finally { cs.close(); rs.close(); } 而不是这个 } catch (SQLException sqle) { sqle.printStackTrace(); } rs.close(); cs.close();

多重返回语句没有编译器错误

这是一个采访问题: public class Demo { public static void main(String[] args) { System.out.println(foo()); } static String foo() { try { return "try …"; } catch (Exception e) { return "catch …"; } finally { return "finally …"; //got as result } } } 我的问题是为什么没有编译时错误。 当我在finally块中有return语句的时候,它肯定会从finally返回而不是try和catch块。 我试图用-Xlint选项编译这段代码,它给出了一个警告。 warning: [finally] finally clause cannot complete normally

从try try catch块中返回是否是不好的做法?

所以我今天早上碰到一些代码,看起来像这样: try { x = SomeThingDangerous(); return x; } catch (Exception ex) { throw new DangerousException(ex); } finally { CleanUpDangerousStuff(); } 现在这个代码编译得很好,按照它应该的方式工作,但是从try块中返回是不正确的,尤其是如果最后有关联的话。 我的主要问题是如果终于抛出它自己的exception会发生什么? 你有一个返回的variables,但也是一个例外,所以我很想知道别人怎么想从try块中返回?

Objective-c中的@try – catch块

为什么不@try块工作? 它崩溃的应用程序,但它应该是由@try块捕获。 NSString* test = [NSString stringWithString:@"ss"]; @try { [test characterAtIndex:6]; } @catch (NSException * e) { NSLog(@"Exception: %@", e); } @finally { NSLog(@"finally"); }