问题创建和使用我自己的异常类

时间:2014-06-02 05:03:53

标签: java exception exception-handling

我有一个JUnit测试类,我是新手。我还试图学习如何创建自己的异常类。我一直在创建一个BigInt类,其中一个构造函数接受了字符串。这段代码循环遍历一个数组,它应该检查每个位置的字符是否是整数。现在有一个错误,上面写着“BigIntFormatException的无法访问的catch块。这个异常永远不会从try语句体中抛出”为什么有任何想法?

    String[] s = { " - - 1424", "+ + 14324", "a142432", "1432 3413",
            "+242134.32421", "", "    \n", "\t ++" };
    for (int i = 0; i < s.length; i++) {
        try {
            BigInt b = new BigInt(s[i]);
            assertFalse(true);
        } catch (BigIntFormatException e) {
            assertTrue(true);
        }
    }

到目前为止,这是我的BigIntFormatException类看起来的样子,所以对这部分的任何帮助也会受到赞赏。

public class BigIntFormatException extends Exception {
    public BigIntFormatException() {
        super();
    }
    public BigIntFormatException(String message) {
        super(message);
    }
}

2 个答案:

答案 0 :(得分:2)

简单地说,这个编译失败非常清楚: BigInt的构造函数和断言声明它们将抛出BigIntFormatException

由于Exceptionchecked exceptions的类(意味着你必须将它们包装在try-catch块中),所以必须声明它们在{{{}的构造函数中抛出1}}。

这就是你的方式。

BigInt

答案 1 :(得分:1)

您需要在BigInt类中抛出异常

    if(/*error condition*/) {
        throw new BigIntFormatException("your message");
    }