我的任务是编写一个小型 JAVA 程序,该程序读取 CSV 文件的每一行并将它们插入数据库。每行按以下顺序包含用户的信息片段:电子邮件、姓名、名字和性别(男或女)。 在以下情况下拒绝不处理一行:
处理的结果然后逐行记录在日志文件中,如果一行被拒绝,则描述原因。
由于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");
}
}
}
我觉得这不是正确的做法。我能谈谈你对此的看法吗?我应该改用布尔值吗?