编写自定义异常类的目的是什么,因为它所做的大部分是相同的。 例如,NullPointerException :
class NullPointerException extends RuntimeException {
private static final long serialVersionUID = 5162710183389028792L;
public NullPointerException() {
super();
}
public NullPointerException(String s) {
super(s);
}
}
这是我见过和创建的大多数异常类的基本模板。
我能想到的一个目的是处理这些异常。但是这不能基于异常消息吗?。大多数情况下,我们为每种异常类型编写单一的处理代码。我知道这有“异常(exception)”。
但是还有更多吗?只是类名变了,这不是在重复自己吗?
还有 JDK Exception 类的代码比这个多吗?
最佳答案
我能想到几个原因:
- 拥有多个异常类允许程序员在他们的
catch
子句中进行特定,并且只捕获他们关心的异常并知道如何处理。 - 异常类可以携带有关导致异常的错误的信息。例如,
ArrayIndexOutOfBoundsException
携带有问题的数组索引,SQL 异常往往携带特定于数据库的错误代码和消息。 - 异常规范——列出异常类——可用于在编译时检查正确性。
关于java - 为什么要在 Java 中编写自定义异常类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15493192/