Я работаю с учебником по Java, и для одной из программ, которые мне нужно написать, я должен обработать свои пользовательские исключения при преобразовании стандартного времени в военное время.Я использовал внутренние классы для обработки трех классов в одном файле.Я не уверен на 100%, что это работает, я не нашел ничего, что говорит, что это будет, или что-то, что говорит, что это будет до сих пор.Я, вероятно, делаю это намного сложнее, чем нужно, но в книге говорится, что мне нужны три класса с их конкретными именами.
Я пытался следовать тому, что говорит мне IDE, он говорит: Нет вложенийЭкземпляр типа InvalidTimeException доступен.Необходимо квалифицировать выделение с включающим экземпляром типа InvalidTimeException (например, xxnew A (), где x - это экземпляр InvalidTimeException). Для меня это говорит мне, чтобы поставить throws new InvalidTimeException.new InvalidHrException();
, это не работает.Я попытался настроить его следующим образом: throws new InvalidTimeException(new InvalidHrException)
Класс исключения
@SuppressWarnings("serial")
public class InvalidTimeException extends Exception {
public InvalidTimeException () {
System.out.println("Unknown Time error: An error has occoured in the program... shutting down.");
}
public InvalidTimeException (String var) {
System.out.println("Input Mismatch Exception: \"" + var + "\" is not a number.");
}
public class InvalidHrException extends Exception {
public InvalidHrException () {
System.out.println("Error in hour input: An error has occoured with the hour input");
}
}
public class InvalidMinException extends Exception {
public InvalidMinException () {
System.out.println("Error in minute input: An error has occoured with the minute input");
}
}
public class InvalidSecException extends Exception {
public InvalidSecException () {
System.out.println("Error in seconds input: An error has occoured with the seconds input");
}
}
}
Пример метода
public static void hourChecker (int var) throws InvalidHrException, InvalidTimeException {
if (var <= 0) {
throw new InvalidTimeException(new InvalidHrException());
}
}
Я ожидаю, что это позволит мне выбросить исключение внутреннего класса InvalidHrException из класса InvalidTimeException.Однако, независимо от того, что я пытаюсь, похоже, ошибка.Я не уверен, если я просто из-за сложных вещей или что.Спасибо за вашу помощь.
РЕДАКТИРОВАТЬ
текущий код для обеспечения работы классов ошибок
public InvalidTimeException (InvalidHrException IHE) throws InvalidHrException {
// just lets the program hit the inner classes
}
текущий пример метода
public static void hourChecker (int var) throws InvalidHrException, InvalidTimeException {
if (var <= 0 || var > 12) {
throw new InvalidTimeException.InvalidHrException();
} else {
return;
}
}