try catch
try catch语法是一种对应于异常处理的语句,其中try语句内用于编写有异常存在可能的语句,而catch语句内用于编写捕获到异常的类型以及对异常对象的处理方法,本文主要以java语言为示例来演示try catch语句关于return情况的分析。
示例代码如下,后续的测试都会基于当前代码改动测试
publicclassDemoController { publicstaticvoidmain(String[] args) { Stringtest=test(); System.out.println(test); } staticStringtest() { Stringres=null; try { //int i = 1/0;res="one"; }catch (Exceptione) { e.printStackTrace(); res="two"; }finally { res="three"; } returnres; } }
无finally语句
下面开始讨论对应的情况:
1.无异常,try语句正常执行,结果返回try语句中的赋值数据,执行结果如下
2.有异常,执行catch中的赋值语句,打印异常信息,返回catch中赋值数据,执行结果如下
有finally语句
1.无异常,因为finally中有赋值,所以返回finally中赋值数据,执行结果如下
2.有异常,打印错误信息,同时因为finally中有赋值,所以返回finally中赋值数据,执行结果如下
最后
由于try catch finally结构中finally中代码一定会执行,因此建议不要在finally中放置返回数据的赋值语句,如果finally中有当前方法返回的最后数据赋值语句的话,那么即使try语句中业务代码执行成功,返回的赋值信息仍然不是业务需要的数据。