是的,允许构造函数 在Java中引发异常。
甲构造 是一种特殊类型的用于初始化的对象的方法,并且它是用来创建使用一个类的一个对象新的关键字,其中对象也被称为一个我nstance 一类。类的每个对象将具有其自己的状态(实例变量),并可以访问其类的方法。
一个检查到的异常可以用来试图创建一个实例时,表示一个合法的问题,而一个未经检查的异常通常表明无论是在客户端代码或在构造本身的错误。
在这两种情况下,对象实际上都是在堆空间中分配的,但不会返回对其的引用。对象一直处于部分初始化状态,直到被垃圾回收为止。因此,我们得出结论,从构造函数本身保存对对象的引用(通过使用此 引用)是一件冒险的事情,因为我们可能会以无效的方式访问对象州。
关于构造函数中异常的另一件重要注意事项是反射。当我们需要使用类对象(例如test)调用空构造函数时 ,有时会使用方法test.newInstance()。
构造函数抛出的任何异常都将传播而无需更改。换句话说,newInstance() 方法可能会抛出甚至没有声明的检查异常。
public class ConstructorExceptionTest { public ConstructorExceptionTest() throws InterruptedException { System.out.println("Preparing an Object"); Thread.sleep(1000); System.out.println("Object is ready"); } public static void main(String args[]) { try { ConstructorExceptionTest test = new ConstructorExceptionTest(); } catch (InterruptedException e) { System.out.println("Got interrupted..."); } } }
输出结果
Preparing an Object Object is ready