gpt4 book ai didi

java - 构造函数可以在Java中抛出异常吗?

转载 作者:bug小助手 更新时间:2023-10-28 10:41:41 32 4
gpt4 key购买 nike

是否允许构造函数抛出异常?

最佳答案

是的,构造函数可以抛出异常。通常这意味着新对象可以立即进行垃圾回收(当然,它可能在一段时间内不会被回收)。但是,如果“半构造”对象在构造函数中较早地使其可见(例如,通过分配静态字段或将自身添加到集合中),则它可能会继续存在。

关于在构造函数中抛出异常要小心的一件事:因为调用者(通常)将无法使用新对象,构造函数应该小心避免获取非托管资源(文件句柄等),然后抛出异常而不释放它们。例如,如果构造函数尝试打开一个 FileInputStream 和一个 FileOutputStream,并且第一个成功但第二个失败,您应该尝试关闭第一个流。如果它是一个抛出异常的子类构造函数,这会变得更难,当然......这一切都变得有点棘手。这不是很常见的问题,但值得考虑。

关于java - 构造函数可以在Java中抛出异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1371369/

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