所以我试图用java为我的程序做一个输入验证,我试图用这个setter来做:

  public void setClientName(String clientName) {
        boolean valid;
        do{
            valid = false;
            try{
                 if(clientName.matches("[a-zA-Z]+")){
                    this.clientName = clientName;
                 }else{
                     throw new IllegalArgumentException("Invalid client name");
                 }
            }catch(Exception e){
                System.out.println("Invalid name");
                valid = true;
            }
        }while(!valid);
    }

但是当我叫错名字的时候...虽然不起作用,但程序仍在继续

这就是我所说的

  public void openAccount(int i){
        nCartao = 2021120040 + i;
        System.out.println("Account Number : " + (nCartao));
        System.out.println("Client Name :");

        setClientName(sc.next()); // I CALL IT HERE

        System.out.println("Client Age : ");
        age = sc.nextInt();
        System.out.println("Balance :");
        balance = sc.nextInt();
    }

我做错了什么?

推荐答案

也许这是因为在你的接球中,你说validtrue,而重复这个方块应该是false.

Java相关问答推荐

CriteriaQuery with max

Javascript在边界中心调整ImageView大小

在现代操作系统/硬件上按块访问数据值得吗?

在bash中将数组作为Java程序的参数传递

在运行MVN测试时,为什么构建失败,并显示了java.lang.ClassNotFoundException:java.net.http.HttpResponse?

当涉及到泛型时,类型推理在Java中是如何工作的?

无法初始化JPA实体管理器工厂:无法确定为Java类型<;类>;推荐的JdbcType

使用Room Database删除Jetpack合成中的所有项目后,UI未重新合成

未找到适用于响应类型[类java.io.InputStream]和内容类型[Text/CSV]的HttpMessageConverter

Java创建带有扩展通配符的抽象处理器

无法使用Open WebStart Java 8运行jnlp

为什么使用lo索引来解决二进制搜索问题不同于使用hi索引?

H2数据库仅支持%1个结果集?

如何通过gradle命令行从build.gradle获得Java targetCompatibility

由于版本不匹配,从Java 8迁移到Java 17和Spring 6 JUnit4失败

如何组合Mono和Flux

UuidGenerator Bean 类型不匹配?

在数组列表中找到对象后,未从数组中删除对象

在对象列表上调用提取后,如何判断没有值为空?

如何对 Collectors.Counting() 的结果进行算术运算?