java - 扩展另一个类的类,如何将其作为异常类?

标签 java exception inheritance

如果我的类已经扩展了一些其他类,如果我想将我的类的一个实例作为异常对象抛出,我应该怎么做?

我发现的唯一方法是某些父类(super class)必须扩展 Exception 类。还有别的办法吗? 编辑:这是否也表明设计缺陷,如果是,请解释如何 在您的类中使用自定义异常的正确方法是什么,是通过在您的类中添加自定义异常的引用还是在需要时调用“new”,您能给出代码大纲吗?

最佳答案

您必须将其包装在另一个类中。在java中你只能抛出Throwable的子类型,Throwable是一个类。

例子:

public class Wrapper extends Exception {
    public final MyClass wrapped;
    public Wrapper(MyClass toWrap) { wrapped = toWrap; }
}

如果这是 trampoline 的应用程序技术或类似的控制流技术,则有一些方法可以获取堆栈跟踪(减少创建对象所需的时间)。如果需要我可以查一下。

关于java - 扩展另一个类的类,如何将其作为异常类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12696294/

相关文章:

java - 以编程方式访问Manifest.permission?

Grails Controller 中的异常处理

java - Netbeans 抛出有关 super 构造函数的错误

Java 正则表达式 - 条件分组

java - Java 中的 Integer.parseInt(string, radix) 返回 (moSTLy) 负十进制值

ruby - 这个救援示例有什么问题?

c++ - 关于异常,覆盖标准异常方法

c++ - 私有(private)继承出现 "an inaccessible base"错误

Swift - 如何添加扩展具有新属性的现有类?

java - 显式扩展对象类并调用对象抛出错误的克隆方法