![](/img/trans.png)
[英]how to get the statement in finally block printed after the return statement from try and catch block?
[英]Unable to test unreachable return statement after try catch block
我写了一个布尔函数。
public boolean func(String someString) {
try {
if (someCondition) {
return true;
}
} catch (Exception e) {
return false;
}
return false;
}
然而,最后的回报是无法到达的。 但我写它是为了满足功能。 当我为这个函数编写测试用例时,没有办法覆盖上面代码中的最后一个返回值。 那么有什么方法可以修改函数以删除无法访问的代码。 提前谢谢你。
上次回程遥不可及
这是不正确的。
仔细考虑何时到达最后一次返回。 只有在以下情况下才会到达:
try
不会抛出异常(否则它会在catch
返回),并且;try
返回。 (或者用更专业的术语来说,“ try
块正常完成”) 它什么时候会在try
返回? 因为有一个if
语句,并没有else
,它只会在回try
,如果someCondition
是真实的。 如果someCondition
为 false,则try
块正常完成,并且将到达最后一个 return。
您只需要考虑一个测试用例,其中someCondition
为假!
像这样做:
public boolean func(String someString) {
boolean bool=false;
try {
if (someCondition) {
bool=true
}
} catch (Exception e) {
e.printStackTrace()
}
return bool;
}
在 try 块中向上移动 return ,如下所示:
public boolean func(String someString) {
try {
if (someCondition) {
return true;
}
return false;
} catch (Exception e) {
return false;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.