gpt4 book ai didi

java - 如何正确地为对象赋值,它们的赋值会引发异常

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:14:57 25 4
gpt4 key购买 nike

在java中,可能很容易需要做一些事情,比如实例化一个BufferedWriter对象。这可以通过以下方式完成:

File outFile = new File("myTestFile.txt");

BufferedWriter w = null;
try { w = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8")); }
catch (FileNotFoundException|UnsupportedEncodingException e) { System.out.println(e.getMessage()); }

w.write("Test string");
w.newLine();

请注意,w 是在 try-catch block 之前声明的。这是为了在 try-catch 之后使用变量在适当的范围内。它使用空指针进行初始化,否则像 netbeans 这样的 IDE 会警告该变量可能尚未分配。然而,IDE 仍然提示说当您到达 w.write() 时,w 可能有一个空值。这是非常合理的,因为 try block 可能会失败!

有没有一种更优雅、更明智的方式来做到这一点,而且不会像我的 IDE 上面提醒我的那样导致逻辑问题?

我意识到我可以将 w 所做的一切都包装在 try block 中,但这对我的任务来说是不可行的。如果有其他选项,我还能如何初始化 w?

谢谢!

最佳答案

您只需要包装所有内容,因为那是 Java 语言设计 - 否则(假设没有 Exceptions 这样的概念),您将不得不检查对否则会引发异常的操作的每次调用如果您的作者仍然有效,那更不可行。

将 try-catch block 看成是受监视的特殊部分,其中可能会发生不良和异常情况,而不会完全破坏您的应用程序。

关于java - 如何正确地为对象赋值,它们的赋值会引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21705769/

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