`
shuofenglxy
  • 浏览: 194486 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

try catch finally 顺带一个system.exit();

阅读更多

恩  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语句.zip

    17.javatry…catch…finally语句.zip17.javatry…catch…finally语句.zip17.javatry…catch…finally语句.zip17.javatry…catch…finally语句.zip17.javatry…catch…finally语句.zip17.javatry…catch…finally语句...

    try 与 catch finally关键字

    Java的 try 与 catch finally关键字的使用

    使用try-catch-finally处理异常

    你还可以在`try-catch-finally`结构内部嵌套另一个`try-catch-finally`结构,以处理更复杂的情况。这种方式使得异常处理更加灵活,能够针对不同层次的异常进行分别处理。 6. **throw和throws关键字** `throw`...

    try、catch、finally、return 执行顺序.doc

    try、catch、finally、return 执行顺序是 Java 编程语言中的一种 exception 处理机制,用于处理程序中的异常情况。下面我们来详细讲解 try、catch、finally、return 执行顺序的规则和特点。 首先,我们需要了解 try...

    lua-error:Lua 的强大错误处理(try()、catch() 和 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 ...

    VB.NET Try Catch Finally用法演示源码.rar

    VB.NET 演示带Finally的Try Catch 异常处理用法演示,这个源码就是捕捉VB.NET运行错误的,结合了最常规的try catch组合,并且使用了Finally处理的情况,那么为什么要使用Finally呢?使用Finally的好处是,把资源释放...

    trycatch.zip

    对于`try...catch...finally`,我们需要在`try`和`catch`之间添加一个`finally`块,无论是否发生错误,都要执行某些代码。这可以通过闭包来实现: ```go func TryCatchFinally(f func() error, handler func(error)...

    try_catch_finally异常处理java

    当`try`块中的代码抛出一个异常时,Java会寻找匹配的`catch`块来处理这个异常。如果找到,那么就执行`catch`块中的代码;如果没有找到匹配的`catch`块,异常会继续向上层调用栈传播,直到被处理或者导致程序终止。 ...

    19.java嵌套的try…catch语句.zip

    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嵌套的...

    java try…catch嵌套捕获异常的实例

    当一个`try`块中的代码抛出异常,相应的`catch`块将捕获该异常并执行相应的处理代码。在某些情况下,我们可能需要对不同类型的异常进行不同的处理,这就是`try-catch`嵌套的用武之地。 首先,让我们理解`try-catch`...

    java.try-catch-finally(处理方案示例).md

    java.try-catch-finally(处理方案示例).md

    try-catch-finally捕获异常

    try-catch-finally语句的异常处理机制可以分为以下几个步骤: 1. try块中的代码执行时,如果出现异常,会跳转到catch块。 2. catch块捕获到异常后,执行异常处理代码。 3. 无论try块中是否出现异常,最终都会执行...

    try-catch-finally(处理方案示例).md

    try-catch-finally(处理方案示例).md

    java中try catch的用法

    在这个示例中,`try`块包含了可能引发异常的代码——即尝试从标准输入流`System.in`读取一个字符。如果读取过程出现问题(如输入流未正确打开或读取过程中断),则会抛出`IOException`异常,此时程序会跳转到相应的`...

    Java异常处理之try...catch...finally详解

    Java异常处理之try...catch...finally详解 Java异常处理机制是判断一门编程语言是否成熟的标准之一,对代码的健壮性有很大影响。Java语言为异常处理提供了丰富的异常类,这些类之间有严格的继承关系。所有的类都是...

    java try…catch捕获异常的实例

    如果在`try`块中的任何代码抛出了一个异常,控制权将立即转移到与之匹配的`catch`块。例如,考虑以下代码片段: ```java try { int[] array = new int[5]; System.out.println(array[10]); // 这将抛出...

    百分百解决System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本.rar

    本文将深入探讨“System.Data.OracleClient”组件以及它与Oracle客户端软件的关系,同时提供一个详细的解决方案来处理“需要Oracle客户端软件8.1.7或更高版本”的错误。 System.Data.OracleClient是.NET Framework...

    try...catch...finally语句的相关案列

    try...catch...finally语句的相关案列

    异常处理try catch在vc中的用法.zip visual c++ try catch处理异常

    总的来说,这个压缩包中的文件可能是一个简单的VC项目,展示了如何在C++中使用`try`、`catch`进行异常处理。通过学习这些文件,开发者可以更好地理解和掌握在VC环境下如何有效地管理异常,提高代码的健壮性。

    详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别

    - **何时使用 `os._exit()`**:当你在一个多进程或多线程环境中,并且希望某个子进程或线程立即终止而无需执行任何清理操作时,可以选择使用 `os._exit()`。 - **何时使用 `sys.exit()`**:对于大多数应用程序来说,...

Global site tag (gtag.js) - Google Analytics