在 try-catch 块之后返回 null
Returning null AFTER a try-catch block
我在理解下面访问器方法中代码的含义时遇到了一些问题。 Eclipse 的编译器要求我在 我的 try-catch 块之后有一个 return 语句 。这是否意味着我的 getter 方法将始终 return null 或者如果它不需要被 IndexOutOfBoundsException 捕获,它将 return 我正在尝试检索的项目?
public T get(int i)
{
try
{
return bag[i];
}
catch(IndexOutOfBoundsException e) //if(logiSize < i+1)
{
System.out.println("Collection has fewer items than the index you entered!");
System.out.println("Returning null"); //or should I...?
}
return null;
}
谁能帮我理解这里的含义?非常感谢!
除非在执行 return 语句时出现 IndexOutOfBoundsException 异常,否则您的方法将 return bag[i]
。在那种情况下,他们的异常被捕获,因为你没有在 catch black 中抛出另一个异常。该方法将进行到 return null
.
如果你只需要检查边界,你可以这样做:
public T get(int i, T[] bag) {
if(i < bag.length) {
return bag[i];
}
return null;
}
我在理解下面访问器方法中代码的含义时遇到了一些问题。 Eclipse 的编译器要求我在 我的 try-catch 块之后有一个 return 语句 。这是否意味着我的 getter 方法将始终 return null 或者如果它不需要被 IndexOutOfBoundsException 捕获,它将 return 我正在尝试检索的项目?
public T get(int i)
{
try
{
return bag[i];
}
catch(IndexOutOfBoundsException e) //if(logiSize < i+1)
{
System.out.println("Collection has fewer items than the index you entered!");
System.out.println("Returning null"); //or should I...?
}
return null;
}
谁能帮我理解这里的含义?非常感谢!
除非在执行 return 语句时出现 IndexOutOfBoundsException 异常,否则您的方法将 return bag[i]
。在那种情况下,他们的异常被捕获,因为你没有在 catch black 中抛出另一个异常。该方法将进行到 return null
.
如果你只需要检查边界,你可以这样做:
public T get(int i, T[] bag) {
if(i < bag.length) {
return bag[i];
}
return null;
}