在自定义异常类Java中处理内部类异常

时间:2019-05-06 15:00:15

标签: java exception

我正在研究一本Java教科书,对于我必须编写的程序之一,我必须在将标准时间转换为军事时间的同时处理自定义异常。我使用内部类在一个文件中处理这三个类。我不是100%确信这行得通,到目前为止,我还没有发现任何表示不会成功的信息。我可能会使这种方法变得比原来更难,但是书中说我需要三个带有特定名称的类。

我尝试遵循IDE的说明,它说没有可访问的InvalidTimeException类型的封闭实例。必须使用类型为InvalidTimeException的封闭实例(例如x.new A(),其中x是InvalidTimeException的实例)对分配进行限定。对我来说,这告诉我将<script type="text/javascript" src="http://localhost:8081/jasperserver-pro/client/visualize.js"></script> 放不下。所以我尝试像这样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");
        }
    }
}

我希望这会让我抛出InvalidTimeException类的内部类InvalidHrException的异常。但是,无论我尝试什么,都似乎有错误。我不确定我是刚刚完成复杂的事情还是什么。谢谢您的帮助。

编辑

使错误类正常工作的当前代码

public static void hourChecker (int var) throws InvalidHrException, InvalidTimeException {
        if (var <= 0) {
            throw new InvalidTimeException(new InvalidHrException());
        }
    }

当前示例方法

public InvalidTimeException (InvalidHrException IHE) throws InvalidHrException {
        // just lets the program hit the inner classes
    }

0 个答案:

没有答案