当前位置: 首页 > 知识库问答 >
问题:

如何在不中断for循环的情况下抛出异常?

佟阳焱
2023-03-14

我有一个非常基本的函数,它搜索CustomerAccount的数组列表,并返回与传递给它的Regnum参数匹配的帐户。但是,一旦抛出CustomerAccountNotFoundException,我的for循环就会中断。

public CustomerAccount findCustomer(String regNum) throws CustomerNotFoundException
{
    CustomerAccount customer = null;
    for (int i=0; i < accounts.size(); i++)
    {
        if(regNum.equals(accounts.get(i).getCustomerVehicle().getRegistration()))
        {
            customer = accounts.get(i);
        }
        else
        {
            throw new CustomerNotFoundException();
        }
    }
    return customer;
}

我通过在异常后打印i的值来测试这一点,该值一直被重置为0。如何在抛出异常后继续循环?我希望每次帐户不匹配时都抛出它,当它匹配时返回帐户。我还尝试过继续;但不起作用。

共有1个答案

沈骞仕
2023-03-14

根据您描述的逻辑,您应该只在循环完成后抛出异常(如果没有找到匹配):

public CustomerAccount findCustomer(String regNum) throws CustomerNotFoundException
{
    for (int i=0; i < accounts.size(); i++)
    {
        if(regNum.equals(accounts.get(i).getCustomerVehicle().getRegistration()))
        {
            return accounts.get(i);
        }
    }
    throw new CustomerNotFoundException();
}
 类似资料:
  • 问题内容: 目前,我正在此站点上抓取图表图表信息。要抓取信息,我需要为有很多镜头的情况做一个for循环。我可以通过单击“ Team Stats”并找到射门次数来找到射门次数。 我想做出适当的选择而不必找出拍摄数量。 我目前正在做什么: 任何帮助将不胜感激。请让我知道是否需要进一步的信息。 问题答案: 我不确定您的变量k是什么意思。 我从所有评论中获得了建议。

  • 问题内容: 我正在用Java编写一个函数,该函数计算字符串中空格后的字符数。对于某些人来说,这个问题听起来微不足道。 现在,我想在for循环中重用此变量(位置),而无需在初始化语句中创建新的变量(i)。目前,我正在这样做。 问题答案: 您无需声明新变量: 您可以将for循环的任何字段保留为空白。 还是更好,为什么不呢?

  • 我有一个实现以下接口的基类,上面声明的方法抛出基本异常类型。 有许多具体的类扩展了基类,我不想在所有这些类中添加块。有没有一种方法可以处理而不添加? 接口 基层 混凝土类示例(共30个)

  • 问题内容: 我今天在浏览一些日志时遇到一个奇怪的错误。 它在日志中的显示方式如下: 代码如下所示: 如果重要的话,代码位于jsp中。再次在日志中重复相同的异常(正如您期望的那样)。 我没有任何原因的记录-日志中的上一行显示了查询的执行。在4天的时间内仅发生了两次,似乎并未对系统造成任何损害。 环境:在Java 5的Tomcat下运行的非常繁忙的Web服务。 我并没有要求调试系统的提示-这些错误已久

  • 我想为OpenComputers(minecraft mod)编写一个曼卡拉游戏,它使用Lua。然而,曼卡拉要求必须进入它中间的主循环(六个可供选择的壶),退出中间的循环(把你的最后一个石头放入空壶),从循环内部进入循环(把最后一个石头放入壶中,必须从那个壶中捡起所有的石头)。 我可以很容易地在两边做曼卡拉,用一个boolean值和一个if语句。 对于不熟悉曼卡拉的人,我有一个快速的流程图来解释我

  • 在我的代码中进行一系列计算后,我有了一个,其值为 然后,我需要将这个乘以,我希望计算出的值为