try、catch、finally巧遇return
来源:互联网 发布:重生之古董商淘宝之旅 编辑:程序博客网 时间:2024/05/29 07:37
Java异常处理
Java的基本理念是“结构不佳的代码不能运行”--Thinking in Java。
Java中的异常处理是一种在编译阶段的错误报告机制,是通过编译器强制执行的。不过尚须明白的
是:编译期间并不能找出所有的错误,余下的问题必须在运行期间解决。
简单的来说,异常处理目的在于通过少量的代码是你的程序更加可靠。
try、catch、finally巧遇return
对于Java中异常如何使用,这里笔者不在提及。这里笔者感兴趣的是try、catch、finally块中遭遇
return语句时的执行情况,以及其返回值情况(总有这些笔试、面试题)。
首先需要注意的是方法执行到return语句便会返回结果并终止是错误的,特例就是Java的异常体系。
看下面的例子程序:
package com.al;public class ExceptionTest{ @SuppressWarnings("finally")public String test(){ String returnStr ="start"; try {System.out.println("start String:"+returnStr);returnStr="try innner";throw new Exception("inner Exception");} catch (Exception e) {returnStr ="catch inner";return returnStr;}finally{returnStr = "finally";System.out.println("inner finally:"+returnStr);return returnStr;} } public static void main(String[] args) {ExceptionTest exceptionTest = new ExceptionTest();try { String test=exceptionTest.test();Thread.sleep(300);System.out.println("returnString:"+test);} catch (InterruptedException e) {// TODO: handle exception}}}输出结果为:
start String:start
inner finally:finally
returnString:finally
掌握下面的几条规则我们就可以很好的解决巧遇return的问题了。
1、finally语句块的代码是必定会执行的,而catch语句块的代码只有发生异常时才能执行
2、方法执行碗try中的return之后不会终止,会继续执行catch(try中抛出异常时)、finally块
3、方法必须确保返回值,且该值唯一。
4、return语句的优先级是finally最大,且try、catch两者之一的return会被执行,为保证
第3条原则,返回优先级最大的值。
对于一个具有返回值的方法来说,保证该方法具有一个返回值在编译阶段就必须被确认。
try中如果包含return语句,则catch块和finally中必须有一个return语句.。另一种情况是try中通过
throw抛出异常,同样catch与finally至少有一个retrun语句。因为try块会假定其中发生异常,
且try块中的代码要么顺利执行,要么抛出异常。如果只在try块中包含return语句不能保证函数有
返回值(如try抛出时,return语句不会执行)。所以为了保证函数具有返回值,java强制要求原则。
- try、catch、finally巧遇return
- try、catch、finally巧遇return
- try、catch、finally巧遇return
- try catch finally return?
- try catch finally return
- try catch finally return
- try...catch...finally中的return
- try catch finally 和return
- try...catch...finally中的return
- try catch finally与return
- 研究try catch finally return
- try、catch、finally、return关系
- try, catch, finally, return的执行顺序
- try、catch、finally、return的执行顺序
- 在try-catch-finally中, return
- try、catch、finally、return的执行顺序
- try catch finally中的return 问题
- try catch finally return 的执行顺序
- oracle 生产环境rman备份
- unp.h的配置以及运行 Unix网络编程中的第一个例子
- linux学什么
- Python进阶04 函数的参数对应
- python 嵌入式webserver 服务器 状态监控
- try、catch、finally巧遇return
- 计算机网络
- struts2-搭建开发框架
- 字符串--字符串的表示
- Best Reward (KMP 回文串的判断)
- 字符串--字符串的访问
- java字符串--修改字符串
- 协议
- Qt之界面出现、消失动画效果