gpt4 book ai didi

java - 在java中创建自定义异常

转载 作者:行者123 更新时间:2023-12-01 17:51:14 24 4
gpt4 key购买 nike

在一次采访中,我最近被问到以下问题:

是否有其他方法可以在不使用extends的情况下创建自定义Exception:

  1. 已检查异常扩展Exception类或Exception的子类
  2. 扩展RuntimeExceptionRuntimeException的子类来处理未检查异常。

可能给出的答案是什么?

最佳答案

如果不使用扩展异常类,就根本无法做到这一点。但你可以在没有显式扩展的情况下实现它......有点。

public class Test {
public void method() {
throw new RuntimeException() {};
}
}

上面声明并抛出 RuntimeException 的匿名子类。

当然,这是毫无意义的事情。由于类是匿名的,因此您不能在 throws 子句中命名它,也不能在异常处理程序中按名称处理它。

另请参阅:Throw anonymous exceptions in Java

<小时/>

或者,您可以扩展 Error(Error 的子类)或 .... Throwable。但你不应该这样做。

  • 通常假定 Error 异常是由 JVM 或标准库定义和抛出的1。因此 Error 层次结构中的自定义子类(至少可以说)会令人惊讶。
  • 如果直接扩展 Throwable,则可能会破坏假定 ExceptionErrorThrowable 的唯一子类的代码
<小时/>

1 - 这不是 javadoc 所说的......但人们认为情况确实如此。

关于java - 在java中创建自定义异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49901546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com