插入前使用异常检查数据(JAVA)[关闭]

问题描述 投票:0回答:0

我的任务是编写一个小型 JAVA 程序,该程序读取 CSV 文件的每一行并将它们插入数据库。每行按以下顺序包含用户的信息片段:电子邮件、姓名、名字和性别(男或女)。 在以下情况下拒绝不处理一行:

  1. 电子邮件地址无效(我使用了正则表达式)
  2. 信息缺失或为空
  3. 性别不同于'M'或'F'
  4. 邮件已经存在于数据库中

处理的结果然后逐行记录在日志文件中,如果一行被拒绝,则描述原因。

由于email字段在数据库中定义为UNIQUE,所以我决定使用SQLException来处理规则4。至此,我已经怀疑这是不是一个好的做法。但后来我用我的其他验证方法将原理系统化:


public static void emailValidation(String email) throws IllegalArgumentException {  
    Pattern pattern = Pattern.compile(EMAIL_PATTERN);
    Matcher matcher = pattern.matcher(email);
    if (!matcher.matches()) {
        throw new IllegalArgumentException("Invalid email address");
    }   
}
    
public static void genderValidation(String gender) throws IllegalArgumentException {
    if(!gender.equals("M") && !gender.equals("F")) {
        throw new IllegalArgumentException("Invalid gender value");
    }
}
    
public static void lineValidation(String[] lineTab) throws IllegalArgumentException {
    if(lineTab.length != 4) {
        throw new IllegalArgumentException("Missing field");
    }
        
    for (int i = 0; i < lineTab.length; i++) {
        if(lineTab[i].isEmpty()) {
            throw new IllegalArgumentException("Missing field");
        }
    }
}

我觉得这不是正确的做法。我能谈谈你对此的看法吗?我应该改用布尔值吗?

java validation exception
© www.soinside.com 2019 - 2024. All rights reserved.