Java – use try catch finally to return the type

See English answers > java's return value in try catch finally mechanism4

private Integer getnumber() {
    Integer i = null;
    try {
        i = new Integer(5);
        return i;
    } catch(Exception e) {
        return 0;
    } finally {
        i = new Integer(7);
    }
}

This method returns 5 instead of 7

Thank you in advance

Solution

This happens because try The finally block of catch is finally in try Run after the code in catch is completed (whether successful or not); In the case of your code, this is the time when the return I occurs

Because of this behavior, the value of I is placed in the return variable of the method before you assign it a new value 7 The following will be valid:

private Integer getnumber(){
  Integer i = null;
  try {
    i = new Integer(5);
  }
  catch(Exception e){
    i = new Integer(0);
  }
  finally{
    i = new Integer(7);
  }
  return i;
}
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>