gpt4 book ai didi

java - 在返回变量之前检查数组中的所有位置

转载 作者:行者123 更新时间:2023-11-29 05:48:41 25 4
gpt4 key购买 nike

我有这个方法,如果在我的菜单数组中按名称找到它,它会返回一个 Recipe 对象。如果它没有找到它,它会抛出一个自定义的 RecipeNotFoundException 并只是说它没有找到......

public static Recipe getRecipe(String recipeName){

try{

for(int j = 0 ; j < Menu.length ; j++){

if(Menu[j].getName().equals(recipeName)){

return (Recipe)Menu[j];

}

else{

throw new RecipeNotFoundException();

}
}

}catch(RecipeNotFoundException e){

System.out.println("Recipe Not Found!");

}

return null;

}

在当前情况下,它只检查第一个菜单点,我如何让它在抛出异常之前检查所有菜单点!?我试过反转和翻转,但它只会导致 NullPointerExceptions 并检查整个事情而无法进行 throw 。有人得到一些指导吗?提前致谢!

最佳答案

在整个循环完成后抛出异常:

for (int j = 0; j < Menu.length; j++) {
if (Menu[j].getName().equals(recipeName)) {
return (Recipe) Menu[j];
}
}
throw new RecipeNotFoundException();

如果找到菜谱,它将在到达抛出异常的行之前返回。

当然,在这里抛出异常有点没有意义。如果您没有做任何其他事情,您可以在循环之后添加错误处理代码而不是抛出异常,因为无论如何它只是在同一个方法中被捕获。当您希望错误由方法的调用者而不是方法本身处理时,您通常会抛出异常。

关于java - 在返回变量之前检查数组中的所有位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14847504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com