让我自己的例外Java

时间:2017-04-05 09:37:15

标签: java exception

我尝试在Java中创建自己的异常。

我有一个父类,如:

public class PException extends Exception {
    public PException(String msg) {
         super(msg);
    }
}

和两个孩子班:

public class noGoalException extends PException {
    public noGoalException(){
        super("No Goal");
    }
}

我称之为:

主要:

try {
    Starter s = new Starter("res/init");
} catch (PException e) {
    e.getMessage();
}

在我的方法中:

 private void parseGoals() throws PException {
     [...]
     if (i == 0) {
        throw new noGoalException();
     }
}

和初学者:

public Starter(String fileName) throws GPException {
    [...]
    parseGoals();
}

我指定i = 0进行测试。

问题是我的异常从不抛出。有什么不对吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

像@Berger一样,评论中还包括: 而不是e.getMessage()做:

try {
    Starter s = new Starter("res/init");
} catch (PException e) {
    System.out.println(e.getMessage());
}

try {
    Starter s = new Starter("res/init");
} catch (PException e) {
    e.printStackTrace();
}

如果仍然没有打印任何内容,请提供更多代码来自我的来源,以便我们可以检查为什么不会抛出错误。

答案 1 :(得分:0)

这不正确,这就是为什么抛出异常时什么也看不见的原因

try {
    Starter s = new Starter("res/init");
} catch (PException e) {
    e.getMessage();
}

e.getMessage() returns a String这就是迷失在筹码中

改为:

System.out.println(e.getMessage());

在捕获

或只是致电e.printStackTrace()