finally的学习笔记
来源:互联网 发布:手机注册淘宝达人 编辑:程序博客网 时间:2024/05/22 10:58
无论异常是否发生,finally子句都将执行。
try-catch-finally是规定了顺序的,顺序错误就会显示编译错误
而finally的用处就是即使异常没被捕获,程序终止,也能执行,eg:
public class FINALLY { public static void main(String[] args){ Scanner Input = new Scanner(System.in); try{ int a = Input.nextInt(); int b = Input.nextInt(); int c = a/b; System.out.println(a + " / " + b + " = " + c); } catch(ArithmeticException ex){ System.out.println("wrong"); } finally{ System.out.println("0"); } }}
输入1.0 2(使异常不会被捕获)将显示:
0
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at 第12章.FINALLY.main(FINALLY.java:10)
Java Result: 1
若将finally{ System.out.println("0"); }改为System.out.println("0");
同样输入1.0 2,显示的结果为
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at 第12章.FINALLY.main(FINALLY.java:10)
Java Result: 1
在一些特殊的情况下,finally的子句将不会执行,例:既在执行finally语句之前,先执行了System.exit(0)(正常退出),或者System.exit(1(非零))(强制退出);程序将退出Java虚拟机,即不会在执行语句之后的任何语句。但若将System.exit(int)换成return则不行,程序将会依然执行finally语句。eg:
public class FINALLY1 { public static void main(String[] args){ try{ int a = 2/0; } catch(Exception ex){ System.out.println("1"); System.exit(0); } finally{ System.out.println("2"); } System.out.println("3"); }}程序显示的结果为:
1
而如果将System.exit(0)改为return:程序将显示的结果为:
1
2
程序是先将finally语句执行后在结束的。
- finally的学习笔记
- final, finally, finalize的区别 ---学习笔记
- final、finally和finalize的区别的学习笔记
- java学习个人笔记---finally模块的陷阱
- JAVA学习笔记--final、finally、finalize的区别
- JAVA解惑学习笔记之四----final、finally、fianlize的区别
- Android学习笔记三十一:Java异常处理中try,catch,finally的各种组合用法
- java学习笔记(4):final,finally和finalize的区别
- final,finally,finalize的区别---小笔记
- 日常笔记- finally的作用到底是什么
- JAVA学习笔记——try catch finally
- python 学习笔记——try,except,else,finally
- js学习笔记----月考题解析--try catch finally
- 《python》学习笔记(Day1++),try\except\finally机制
- Android开发的学习流程 final,finally,finalize的区别
- try-catch-finally学习
- try{}catch{}finally{}学习
- try-catch-finally学习
- js设置cookie,为cookie中设置多个key value
- 绝对定位的div居中
- 免费的优质英文字体打包下载
- 算法 - Dijkstra 最短路径
- android shell打包
- finally的学习笔记
- CentOS6.5轻量级桌面化安装
- android ActionBar用法详解
- iOS --- 理解UIWindow及其常见使用场景
- 进程与线程
- dbms_stats和analyze汇总
- Hdu oj 1800 Flying to the Mars(Map)
- hdu2710 (素数删选法)
- Android中通过url获取图片Bitmap