我正在阅读有效的Java异常文章

http://www.oracle.com/technetwork/java/effective-exceptions-092345.html

我在文章的第三页中找到了这一段


  不要忘记您的异常是可以
  容纳专门的字段,方法甚至构造函数
  可以根据您的独特目的进行成型。例如,
  虚构抛出的InsufficientFundsException类型
  CheckingAccount processCheck()方法可以包含一个
  OverdraftProtection对象,能够将所需的资金转移到
  弥补另一个帐户的不足,该帐户的身份取决于
  支票帐户已建立。


如果我在线检查,会发现类似这样的自定义异常代码

public class DivisorCannotbeZeroException extends RuntimeException {


    private static final long serialVersionUID = 1L;

    public DivisorCannotbeZeroException(){
        super();
        System.out.println("I am doing something more");
    }

    public DivisorCannotbeZeroException(String message){
        super(message);
    }

}


即使print语句在该代码中也不起作用。您能为我解释一下如何为自定义异常类添加更多功能以满足我们的要求吗?

最佳答案

您必须构造该Exception的实例(使用默认构造函数),以调用该构造函数(通常通过throw调用它),例如

public static void main(String[] args) {
    throw new DivisorCannotbeZeroException();
}


输出为

I am doing something more
Exception in thread "main" com.stackoverflow.Example
    at com.stackoverflow.Example.main(Example.java:18)

关于java - 创建Java异常可以做的事情不仅仅是打印消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27267107/

10-11 22:28
查看更多