Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java在超级属性的子构造函数中引发异常_Java_Oop_Inheritance_Exception_Constructor - Fatal编程技术网

Java在超级属性的子构造函数中引发异常

Java在超级属性的子构造函数中引发异常,java,oop,inheritance,exception,constructor,Java,Oop,Inheritance,Exception,Constructor,我有一个抽象类,它的构造函数不抛出异常,还有一个扩展它的类,但它应该在构造函数中抛出一个泛型异常 对于要抛出的异常,我需要检查父类中的一个属性(在调用super()之前我不能这样做) 有没有一种方法可以在不向父类抛出异常的情况下实现这一点,或者这是最好的方法?首先是super();电话必须是第一位的。如果不显式指定调用,则隐式完成。这意味着父构造函数将在子构造函数执行任何其他操作之前完成。之后,您的子类可能会根据父构造函数中所做的任何操作引发异常。听起来你让这变得更难了…为什么你不能在调用sup

我有一个抽象类,它的构造函数不抛出异常,还有一个扩展它的类,但它应该在构造函数中抛出一个泛型异常

对于要抛出的异常,我需要检查父类中的一个属性(在调用super()之前我不能这样做)


有没有一种方法可以在不向父类抛出异常的情况下实现这一点,或者这是最好的方法?

首先是super();电话必须是第一位的。如果不显式指定调用,则隐式完成。这意味着父构造函数将在子构造函数执行任何其他操作之前完成。之后,您的子类可能会根据父构造函数中所做的任何操作引发异常。听起来你让这变得更难了…

为什么你不能在调用
super()
之后抛出异常?这不会初始化我的对象吗?如果你的对象被部分初始化(由超类构造函数),然后抛出异常(在子类构造函数中)它无法使用,因为构造未成功完成。您可以在子类构造函数中抛出异常。