构造函数可以在Java中引发异常吗?

构造函数可以在Java中引发异常吗?,第1张

构造函数可以在Java中引发异常吗?

是的,构造函数可以引发异常。通常,这意味着新对象可以立即进行垃圾回收(当然,尽管一段时间内可能不会收集到)。如果“半构造”对象在构造函数中较早可见(例如,通过分配静态字段或将其自身添加到集合中),则可能会留下痕迹。

在构造函数中引发异常时要注意的一件事:由于调用者(通常)将无法使用新对象,因此构造函数应注意避免获取非托管资源(文件句柄等),然后引发异常没有释放它们。例如,如果构造函数尝试打开a

FileInputStream
和a
FileOutputStream
,并且第一个成功但第二个失败,则应尝试关闭第一个流。如果它是引发异常的子类构造函数,则这将变得更加困难……当然,这都变得有些棘手。这不是经常出现的问题,但是值得考虑。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5508995.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存