Обработка внутренних исключений класса в пользовательском классе исключений Java - PullRequest
0 голосов
/ 06 мая 2019

Я работаю с учебником по 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;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...