`

return finally 与 System.exit(n)

阅读更多
问题:System.exit(n);的含义以及作用

说明:
public static void exit(int status)终止当前正在运行的 Java 虚拟机。
参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
该方法调用 Runtime 类中的 exit 方法。该方法永远不会正常返回。
调用 System.exit(n) 实际上等效于调用:
Runtime.getRuntime().exit(n)

一、运行顺序

1.finally 与 return

return 运行后 执行 finally

return 是返回到调用方法的上一层

2.finally 与 System.exit(0)

System.exit(0) 不再运行其后面的代码

System.exit() 返回到调用方法的最上一层

3.示例



public class returnTestMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int resultMethod = returnMethod();
		System.out.println(resultMethod);
	}
	
	/**
	 * return 与 finally 
	 * return 是跳出当前的方法到上一层的方法中
	 * @return
	 */
	public static int returnMethod(){
		try {
			
			int a = 0 / 0 ;
			System.out.println("try method "+a);
			return 0 ;
		} catch (Exception e) {
			System.out.println("error method");
			// 直接跳出到程序的最上一层,终止程序运行
//			System.exit(0);
			return 1 ;
		}finally{
			System.out.println("finally method");
			// 此处添加返回值,始终返回 2 
//			return 2 ;
		}
		
	}

}



分享到:
评论

相关推荐

    《剑指offer》Java深入理解final、finally、finalize.pdf

    即使有`return`语句或者`System.exit()`,`finally`块的代码仍会被执行,确保程序的完整性和资源的有效释放。通常,`finally`块的典型用法是包含那些必须执行的操作,以防止资源泄露。 最后,`finalize`方法是Java...

    Java中finally和return的关系实例解析

    3. finally语句可以与return语句结合使用,但是finally语句的返回值将覆盖try/catch中的return语句。 4. 在finally中写return语句会有警告,因为它会阻止函数抛出异常,而改为正常返回。 Java中finally和return的...

    浅谈Java finally语句到底是在return之前还是之后执行(必看篇)

    在某些情况下,finally 语句可能不会被执行,例如在 try 语句之前就返回了,在 try 块中有 System.exit(0) 语句等。 那么,finally 语句是在 try 的 return 之前还是之后执行的呢?这个问题引起了很多人的探讨和...

    关于Java中try finally return语句的执行顺序浅析

    例如,在try语句块中执行了System.exit(0)语句,终止了Java虚拟机的运行,finally语句块也不会执行。 下面是一个示例代码Demo2: public class Test { public static void main(String[] args) { System.out....

    trycatchfinaly

    即使`try` 或`catch` 块中包含`return` 语句或系统退出操作(`System.exit(0)`), `finally` 块也会被执行。这使得`finally` 成为了释放资源、关闭文件等操作的理想场所。 #### 五、try-catch-finally 的执行顺序 1. ...

    退出整个应用程序

    当需要退出时,遍历该列表并调用每个Activity的`finish()`方法来关闭它们,并最终调用`System.exit(0)`来结束进程。 #### 代码详解 ##### SysApplication 类 ```java public class SysApplication extends ...

    SampleRhino2.zip

    在Android开发中,Java与JavaScript的交互是一种常见的需求,特别是在构建具有复杂用户界面或需要利用Web技术增强原生应用功能的场景下。本压缩包"SampleRhino2.zip"提供的示例着重展示了如何在Java环境中直接调用...

    java finally块执行时机全面分析

    1. 程序通过`System.exit()`退出。 2. 由于硬件故障或操作系统干预导致进程被终止。 在正常情况下,`finally`块的执行遵循以下规则: 1. 当`try`块执行完毕,且没有发生异常时,`finally`块会在返回值返回调用者...

    深入剖析Java中的各种异常处理方式

    // finally中调用了System.exit(0),这将立即终止程序,不会继续执行try或catch中的return语句 System.exit(0); } } 此时,后台输出结果将是: enter after try field enter finally method Java异常处理是编程中...

    爱若信.doc

    System.out.println("Finally block executed."); } } public static int divide(int a, int b) throws ArithmeticException { return a / b; } } ``` ### 4. Java JDBC基础 Java Database Connectivity ...

    C# for CSDN 乱七八糟的看不懂

    abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit ...

    3谈谈final、finally、finaliz1

    即使在try块中抛出异常或者通过return、System.exit()等方式退出,finally块内的代码依然会被执行。在Java 7及更高版本中,try-with-resources语句简化了资源管理,可以自动关闭实现了AutoCloseable接口的资源,这比...

    完全解析Java编程中finally语句的执行原理

    在Java编程中,`finally`语句块是一个...然而,其执行依赖于`try`块的正常执行,且受到`return`、`System.exit()`、线程中断或程序异常终止等因素的影响。因此,正确使用`finally`是编写稳定可靠代码的关键技巧之一。

    java练习题

    **知识点**: 类的继承与多态,接口的实现。 **示例代码**: ```java interface GoodHabit { void hardWork(); } interface BadHabit { void smoke(); void drink(); } class Student { String name; int age;...

    Java异常处理中同时有finally和return语句的执行问题

    首先,`finally`块中的代码总是会被执行,除非程序在执行到`finally`块之前就退出了JVM(例如通过`System.exit()`)。即使在`try`块或`catch`块中有`return`语句,`finally`块内的代码也会在返回之前被执行。这是...

    Java面向对象试题集[归纳].pdf

    try块包含可能抛出异常的代码,catch捕获特定类型的异常,finally确保无论是否发生异常都会执行的代码,即使在try或catch中有return或System.exit(),finally块依然会执行。当执行到System.exit(0)时,程序会立即...

    java题集

    唯一的情况是如果在`catch`块中使用了`System.exit(0)`来直接终止程序,那么`finally`块将不会被执行。 ```java public class Test { public static void main(String[] args) { int a = 1; try { a = a / 0; ...

    java是去蜗牛还是源码时代-JavaInterviewQuestions:Java面试题

    finally代码是在return之后还是之前执行? throws是获取异常,throw是抛出异常,try是将会发生异常的语句括起来,从而进行异常的处理, catch是如果有异常就会执行他里面的语句,而finally不论是否有异常都会进行...

    JAVA面试题目,精华

    当在try块中使用return或System.exit(0)时,finally块的代码仍然会被执行,除非使用了System.exit(0),这将立即结束程序执行,跳过finally块。 12. **main方法签名。** 主方法(main方法)的正确签名是`public ...

Global site tag (gtag.js) - Google Analytics