public static void main/String[] args/ throws Exception {
try{
System.out.println/'A'/;
try{
System.out.println/'B'/;
throw new Exception/"threw exception in B"/;
}
finally
{
System.out.println/'X'/;
}
//any code here in the first try block
//is unreachable if an exception occurs in the second try block
}
catch/Exception e/
{
System.out.println/'Y'/;
}
finally
{
System.out.println/'Z'/;
}
}
}
11 个回复
裸奔
赞同来自:
堵塞 finally 无论是否引起异常,总是执行它。
风见雨下
赞同来自:
/
: finally 始终只会执行
叫。
JVM 失败。
堵塞
永远不会结束 /例如,无限循环/.
帅驴
赞同来自:
/1/
描述它是如何执行的
.
缺乏捕获量是不缺失的捕获,能够捕获这个主题。
如果执行块 try 由于投掷值急剧结束 V, 这是选择:
如果时间类型的执行 V 分配给任何优惠的参数 catch 操作员 try, 那 …
…
如果时间类型的执行 V 未分配给任何优惠的参数 catch 操作员 try ,
然后块正在运行 finally
. 然后有一个选择:
如果是块 finally 正常完成,然后运营商 try 由于投掷值急剧结束 V.
如果是块 finally 突然完全 S, 那个运营商 try 突然完全 S /和投掷价值 V 丢弃和遗忘
/
.
/1/
http://docs.oracle.com/javase/ ... .20.2
窦买办
赞同来自:
带领
江南孤鹜
赞同来自:
如果块中的任何代码创建异常 try, 然后当前方法简单地重复 /或继续创造/ 同样的例外 /开始街区后 finally/.
如果是块 finally 发表例外 / 错误 / throwable, 已经期待 throwable, 他变得丑陋。 老实说,我完全忘了究竟发生了什么 /对于我的认证多年前这么多/. 一世
我认为
, 两种抛出物体都连接在一起,但有一些 - 然后是一个特殊的巫毒你要做的 /T. E.-呼吁一种我要看的方法/, 以前获得原始问题 "finally" blevernet,呃,拔出。
顺便一提, try / 最后是资源管理的相当常见的事情,从而以来 java 没有析构函数。
E.g. -
"Finally", 另一个建议:如果你全部
相同的
陷阱或捕获特定的目标 /预期的/ 子类具有投掷或仅捕获的可能性 "Throwable", 和
不是
"Exception", 对于一般陷阱错误 catch-all. 太多问题,如愚蠢的反思,扔 "Errors", 但不是 "Exceptions", 他们会被任何人滑倒 "catch all", 编码为:
相反:
帅驴
赞同来自:
try-catch-finally
...
堵塞
无论块中发生的情况如何,都会被执行
或者/和
. 因此,如果没有块
, 这里不会处理异常。
但是,您仍然需要一个异常处理程序 - 在代码中 - 如果您当然不希望您的申请完全拒绝。 这取决于应用程序的架构,其中该处理程序位于其中。
Java 堵塞 try 必须遵循块参数 catch 或者 finally.
对于每个街区 try 可能是零或更多块 catch, 但只有一个街区 finally.
堵塞 finally 如果程序完成工作,则不会执行 /要么被称为 System.exit//, 或导致致命错误会导致过程中断/.
江南孤鹜
赞同来自:
遇到一个例外或其他东西
投掷
除了任何其他情况下,否则抛出块的例外,当没有捕获。
堵塞 finally 无论街区如何完成 try 事实证明,无论是否有任何捕获,无论是否有一致捕获。
块 catch 和 finally 是正交部件块 try. 你可以拥有某种东西或其他东西。 从 Java 7, 你可以拥有任何人!
卫东
赞同来自:
郭文康
赞同来自:
奔跑吧少年
赞同来自:
我们编写可能导致异常的代码。
堵塞
- 这是我们处理异常的地方。
堵塞
无论是否发生异常,都始终执行。
现在,如果我们有一个街区 try-finally 而不是bloc. try-catch-finally, 该例外不会被处理,并且在块之后 try 而不是控制将进入块 catch, 它会进入街区 finally.
我们可以使用块 try-finally, 除非我们不想做任何事情。
小明明
赞同来自:
- 堵塞
将被执行。 不抓住异常。