首页 > 试题广场 >

以下函数返回值正确的是: public int get

[不定项选择题]
以下函数返回值正确的是:
public int getVal(String str) {
int val = 0;
try {
val = Integer.parseInt(str);
return val;
} catch (NumberFormatException e) {
return val;
}
finally {
val = -1;
}
}
  • 输入str = "10"时,返回10
  • 输入str = null时,返回-1
  • 输入str = "x"时,返回-1
  • 输入str = "-2"时,返回-1
由于try、catch中都有return语句,所以其实finally语句是不会执行到的。
发表于 2020-06-22 23:20:38 回复(1)
finally是幌子,因为早在前面就一定会return
parseInt(str)如下
 public static int parseInt(String s) throws NumberFormatException {
        return parseInt(s,10);
 }
在parseInt(s,10)中有如下代码
        if (s == null) {
            throw new NumberFormatException("null");
        }
s='x'时会判定出不是数字(比较复杂,就不解释了),从而抛出异常,返回0
s='-2'时返回-2
所以选A

发表于 2019-09-07 16:32:19 回复(0)
null会抛异常
发表于 2019-03-06 18:15:19 回复(0)