为了账号安全,请及时绑定邮箱和手机立即绑定

请问大神问题在哪~

public static void BookName() throws Exception {
    try {
        String name = sc.next();
        for (int i = 0; i < bookname.length; i++) {
            int num = i + 1;
            if (name.equals(bookname[i])) {
                System.out.println("******序号" + num + "." + name + "******");
                break;
            }
        }
        throw new Exception("******nameException******");
    } catch (Exception e) {
        System.out.println("******输入书名有误请重新输入******");
        BookName();
    }
}

输入正确的书名时,结果显示正确。但为什么还会提示“******输入书名有误请重新输入******

正在回答

1 回答

个人认为是break跳出的是for循环并没有跳出try语句,所以往下执行创建了一个“**********nameException***********”异常对象并抛出,且与catch()中的参数类型相匹配所以就执行了catch语句。

修改:我觉得应该把“throw    new    Exception("**************nameException****************")”放入else语句中。


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409792    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

请问大神问题在哪~

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信