我需要创建一个 Date
类,在这个 Date
类中,我需要一个构造函数来验证“mm/dd/yyyy”中的日期”格式。此外,如果构造函数的参数与日期格式不匹配,它需要抛出Exception
类型的异常。该类要求字段月、日和年为整数。如果传入的参数不符合日期格式,我需要将所有字段设置为0。
在我的一生中,我无法捕捉到异常。任何帮助将不胜感激。
public class Date
{
private int month;
private int day;
private int year;
private String date;
public Date(String aDate)
{
date = aDate;
String[] str = date.split("/");
String sMonth = str[0];
String sDay = str[1];
String sYear = str[2];
month = Integer.parseInt(sMonth);
day = Integer.parseInt(sDay);
year = Integer.parseInt(sYear);
try
{
if (month <= 12 && day <= 31)
{
month = month;
day = day;
}
if (sYear.length() != 4)
{
year = year;
}
}
catch (Exception e)
{
month = 0;
day = 0;
year = 0;
}
}
}
最佳答案
先转换为int:
date = aDate;
String[] str = date.split("/");
String sMonth = str[0];
String sDay = str[1];
String sYear = str[2];
try
{
// Here you compare String to an int, do the convertions to int first
// to make it throw exception on non integers.
if (month <= 12 && day <= 31)
{
month = month = Integer.parseInt(sMonth);
day = Integer.parseInt(sDay);
}
if (sYear.length() != 4)
{
year = Integer.parseInt(sYear);
}
}
catch (Exception e)
{
month = 0;
day = 0;
year = 0;
}
更新
你需要验证自己。它需要比下面更多的验证,但只是一个提示。
try {
// These can throw exceptions and you want to catch those too.
month = Integer.parseInt(sMonth);
day = Integer.parseInt(sDay);
year = Integer.parseInt(sYear);
if (month <= 12) {
throw new Exception("month");
}
if (day <= 31) {
throw new Exception("day");
}
if (sYear.length() != 4) {
throw new Exception("year");
}
} catch (Exception e) {
month = 0;
day = 0;
year = 0;
}
关于java - 使用 Try Catch 在构造函数中进行日期验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41072353/