Java 异常处理之 论 finally块何时候不走
时间:2022-05-04
本文章向大家介绍Java 异常处理之 论 finally块何时候不走,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一. exit退出异常:
import java.util.Scanner;
public class Test3exit {
/**
* @param 房山的猫
* finally什么时候不走
* alt+shift+z
*/
public static void main(String[] args) {
try {
Scanner input=new Scanner(System.in);
System.out.print("请输入第一个整数:");
int num1=input.nextInt();//1)输入不是整数类型 2)除法 输入 0
System.out.print("请输入第二个整数:");
int num2=input.nextInt();
int jg=num1/num2;//输入num2可能输入 0
System.out.println(jg);
} catch (Exception e) {
System.out.println("出现异常");
System.exit(1);//退出java的虚拟机
e.printStackTrace();
}finally{
System.out.println("finally语句");
}
}
}
二. return返回:
“如果return在异常处理机制块中 , finally块执行流程高于return;但是在带返回值的方法中,return返回的是当前位置的值,不受finally块影响”
详细解释 请查阅:http://www.cnblogs.com/lsy131479/p/8513577.html
import java.util.Scanner;
public class Test4return {
/**
* @param 房上的猫
* finally什么时候不走
* alt+shift+z
*/
public static void main(String[] args) {
try {
Scanner input=new Scanner(System.in);
System.out.print("请输入第一个整数:");
int num1=input.nextInt();//1)输入不是整数类型 2)除法 输入 0
System.out.print("请输入第二个整数:");
int num2=input.nextInt();
int jg=num1/num2;//输入num2可能输入 0
System.out.println(jg);
} catch (Exception e) {
System.out.println("出现异常");
return;//程序返回
}finally{
System.out.println("finally语句");
}
}
}
很多人以为,此程序会return反回 不会走finally。其实不然;下面是执行流程:
----------------------------------------------------------------------------
| 总结:System.exit();//退出java的虚拟机 是finally块唯一不执行的情况 |
----------------------------------------------------------------------------
三. 补充:
正常退出应该用return 0;0表示没有错误 异常退出应用exit,其中的返回值是交给编译器做其他相关对应操作 在main()函数里,exit与return完全一样。但在其他函数里一个是把控制权交给编译器退出程序,一个则是返回到main函数调用位置
(C) 房上的猫 。 保留所有权利。 https://www.cnblogs.com/lsy131479/
如需转载,请注明出处!!!
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 【多目标跟踪】搞不懂MOT数据集,会跑代码有啥用!
- 手工 - 内网信息收集
- 使用ffmpeg压缩视频之烦和fun
- 一文学会 Web Service漏洞挖掘!
- 【实战项目代码分享】计算机视觉入门教程&实战项目代码
- Linux部署DNS服务器
- 【C++简明教程】C++简介与环境配置
- PDF 的各种操作,我用 Python 来实现(附网站和操作指导)
- Python中map()函数用法
- 谈谈不同思路下造就的不同产品与公司形态
- OpenCV 处理中文路径、绘制中文文字的烦恼,这里通通帮你解决!
- 如何快速分析大型系统架构?
- Linux小技巧、文件查找、修改、读取
- 我在赏金计划中发现的RACE条件漏洞
- 哦!数组还能这么用,学到了!