я не могу получить, почему мой код перехватывает исключение .. Я полагаю, что-то неладно с конструктором, но я не вижу, где именно ..Где я ошибаюсь? (Обработка исключений)
public class OrderDate
{
private String date;
public OrderDate(String date) throws IllegalDateFormatException
{
IllegalDateFormatException wrongDate =
new IllegalDateFormatException("Date must have the following"
+ " format: dd/mm/yy");
if(date.length() > 8
|| (date.charAt(0) == 0 && date.charAt(1) == 0)
|| (date.charAt(3) == 0 && date.charAt(4) == 0)
|| (date.charAt(0) == 3 && date.charAt(1) > 1)
|| (date.charAt(3) == 1 && date.charAt(4) > 2)
|| date.charAt(2) != '/'
|| date.charAt(5) != '/'
|| date.charAt(0) > 3
|| date.charAt(3) > 1
|| !isDigit(date.charAt(0))
|| !isDigit(date.charAt(1))
|| !isDigit(date.charAt(3))
|| !isDigit(date.charAt(4))
|| !isDigit(date.charAt(6))
|| !isDigit(date.charAt(7)))
throw wrongDate;
else
this.date = date;
}
private boolean isDigit(char z)
{
return z >= '0' && z <= '9';
}
}
В основном методе Я использую следующее:
try
{
OrderDate myDate = new OrderDate("10/02/15");
System.out.println("all fine");
}
catch(Exception e)
{
System.out.println(e);
System.exit(0);
}
И класс исключений:
public class IllegalDateFormatException extends Exception
{
public IllegalDateFormatException(String error)
{
super(error);
}
}
Большое спасибо за помощь!
В целом, приложите отладчик и проверьте каждое из условий в длинном '' '' '' '' '' '' '' '' '' '' '' '. – Barett