恩 return执行时 try finnally的影响,跟加了system.exit()后的变化。
分析:try catch的语句块在执行之后不直接完成响应,而是去finally做完相应的操作.加上system.exit(0)则表示执行到此程序立即终止。如果想要在终止前做点什么 可以定义一个不开启的新thread去完成相应的工作,必须也在exit句之前去完成。
其实也没什么,遇到问题写个代码run一下。然后根据结果google 查阅相应的资料分析就好了。不要想当然就OK.
package demo;
public class sf {
public static void main(String[]args){
System.out.println(tryFinallyTest0(3));
System.out.println(tryFinallyTest0(-2));
//tryFinallyTest1();
//tryFinallyTest2();
//tryFinallyTest3();
//tryFinallyTest4();
}
public static int tryFinallyTest0(int n){
try{
if(n>1)
return -5;
else throw new Exception();
}catch(Exception e){
return 5;
}
finally{
return 0;
}
}
public static void tryFinallyTest1(){
try{
System.out.println("finish");
System.exit(0);
}finally{
System.out.println("finishedTag");
}
}
public static void tryFinallyTest2(){
try{
System.out.println("finish");
System.exit(0);
}finally{
System.out.println("finishedTag");
}
}
public static void tryFinallyTest3(){
Runtime.getRuntime().addShutdownHook(new Thread(){
public void run(){
System.out.println("finishedTag");
}
});
try{
System.out.println("finish");
}finally{
}
System.exit(0);
}
public static void tryFinallyTest4(){
try{
System.out.println("finish");
System.exit(0);
}finally{
Runtime.getRuntime().addShutdownHook(new Thread(){
public void run(){
System.out.println("finishedTag");
}
});
}
}
}
分享到:
相关推荐
17.javatry…catch…finally语句.zip17.javatry…catch…finally语句.zip17.javatry…catch…finally语句.zip17.javatry…catch…finally语句.zip17.javatry…catch…finally语句.zip17.javatry…catch…finally语句...
Java的 try 与 catch finally关键字的使用
你还可以在`try-catch-finally`结构内部嵌套另一个`try-catch-finally`结构,以处理更复杂的情况。这种方式使得异常处理更加灵活,能够针对不同层次的异常进行分别处理。 6. **throw和throws关键字** `throw`...
try、catch、finally、return 执行顺序是 Java 编程语言中的一种 exception 处理机制,用于处理程序中的异常情况。下面我们来详细讲解 try、catch、finally、return 执行顺序的规则和特点。 首先,我们需要了解 try...
java.try-catch-finally(解决方案).md
VB.NET 演示带Finally的Try Catch 异常处理用法演示,这个源码就是捕捉VB.NET运行错误的,结合了最常规的try catch组合,并且使用了Finally处理的情况,那么为什么要使用Finally呢?使用Finally的好处是,把资源释放...
try() , catch() , finally()函数 自定义错误对象 快的 -- import creates a base Error class and global funcs try(), catch(), finally() local Error = require ' lua_error ' -- do this anywhere in your ...
对于`try...catch...finally`,我们需要在`try`和`catch`之间添加一个`finally`块,无论是否发生错误,都要执行某些代码。这可以通过闭包来实现: ```go func TryCatchFinally(f func() error, handler func(error)...
当`try`块中的代码抛出一个异常时,Java会寻找匹配的`catch`块来处理这个异常。如果找到,那么就执行`catch`块中的代码;如果没有找到匹配的`catch`块,异常会继续向上层调用栈传播,直到被处理或者导致程序终止。 ...
19.java嵌套的try…catch语句.zip19.java嵌套的try…catch语句.zip19.java嵌套的try…catch语句.zip19.java嵌套的try…catch语句.zip19.java嵌套的try…catch语句.zip19.java嵌套的try…catch语句.zip19.java嵌套的...
当一个`try`块中的代码抛出异常,相应的`catch`块将捕获该异常并执行相应的处理代码。在某些情况下,我们可能需要对不同类型的异常进行不同的处理,这就是`try-catch`嵌套的用武之地。 首先,让我们理解`try-catch`...
本文将深入探讨“System.Data.OracleClient”组件以及它与Oracle客户端软件的关系,同时提供一个详细的解决方案来处理“需要Oracle客户端软件8.1.7或更高版本”的错误。 System.Data.OracleClient是.NET Framework...
java.try-catch-finally(处理方案示例).md
try-catch-finally语句的异常处理机制可以分为以下几个步骤: 1. try块中的代码执行时,如果出现异常,会跳转到catch块。 2. catch块捕获到异常后,执行异常处理代码。 3. 无论try块中是否出现异常,最终都会执行...
try-catch-finally(处理方案示例).md
在这个示例中,`try`块包含了可能引发异常的代码——即尝试从标准输入流`System.in`读取一个字符。如果读取过程出现问题(如输入流未正确打开或读取过程中断),则会抛出`IOException`异常,此时程序会跳转到相应的`...
Java异常处理之try...catch...finally详解 Java异常处理机制是判断一门编程语言是否成熟的标准之一,对代码的健壮性有很大影响。Java语言为异常处理提供了丰富的异常类,这些类之间有严格的继承关系。所有的类都是...
如果在`try`块中的任何代码抛出了一个异常,控制权将立即转移到与之匹配的`catch`块。例如,考虑以下代码片段: ```java try { int[] array = new int[5]; System.out.println(array[10]); // 这将抛出...
try...catch...finally语句的相关案列