gpt4 book ai didi

java - 在catch block 中处理异常?

转载 作者:行者123 更新时间:2023-12-01 14:41:28 24 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,但我在其他地方找不到答案。我有一个类可以读取和写入文件以进行保存。现在,我正在尝试处理一些可能出现的错误。我想知道这在 Java 中是否合法或常见:

try {
in = new ObjectInputStream(new FileInputStream(fileName));
score = (Score)in.readObject();
} catch() {
...
}

我遇到的问题是如果文件为空,则无法读取该文件。程序会崩溃,所以我想知道从 catch 语句在文件中创建一些数据,然后再次尝试/捕获它是常见或常规的做法。然后在第二次捕获时我可以使程序崩溃。

我想这样做的原因是用户删除了文件中的数据。

如果合法,这就是语法吗?

try {
// try something here
} catch(//Exception here) {
// Create a new file and try again.
try {
// try again
} catch() {
// Crash the program
}
}

最佳答案

为什么不在尝试使用它之前检查该文件是否不存在或为空?

try {
File file = new File( fileName);
if( !file.exists() || file.length() == 0) {
// Create the file, initialize it with some default value
}
in = new ObjectInputStream(new FileInputStream( file));
score = (Score)in.readObject();
} catch() {
...
}

请注意,存在一个小的竞争条件,即在您检查文件是否存在和在 FileInputStream 中实际使用该文件之间,用户可能会删除该文件。

关于java - 在catch block 中处理异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15915917/

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