gpt4 book ai didi

java - 如何摆脱 try/catch block 的 IOException 捕获上的 IntelliJ 警告/错误?

转载 作者:搜寻专家 更新时间:2023-10-31 08:04:24 26 4
gpt4 key购买 nike

对不起。我敢肯定这已经在这里的某个地方得到了回答。但是,我找不到它。

基本上,我有一个 try/catch block ,无论我做什么,我似乎都会收到警告或错误。 catch(IOException e) 导致“过于宽泛”的警告。 catch (FileNotFoundException e) 导致需要 IOException 捕获的代码出错。 catch (FileNotFoundException | IOException e) 导致“多捕获中的类型必须不相交”错误。最后,放置两个 catch block (一个用于每个异常)会导致“'catch' 分支与 'FileNotFoundException' 相同”警告。

我不想编辑 IntelliJ 的警告系统,因为它很有用。

我怎样才能使下面的 try/catch block 在没有警告或错误的情况下工作?

@Override
public void readFile(File inFile) {

try {
FileReader fr = new FileReader(inFile);
BufferedReader br = new BufferedReader(fr);

// get the line with the sizes of the puzzle on it
String sizes = br.readLine();

// find the height of the puzzle
int height = Character.getNumericValue(sizes.charAt(0));

// create a puzzleArr with a height
this.puzzleArr = new char[height][];

// create the char[] array of the puzzle itself
int ct = 0;
String puzzleLine;

// add the puzzle to puzzleArr
while (ct < this.puzzleArr.length) {

puzzleLine = br.readLine().replaceAll("[^a-z]", "");
this.puzzleArr[ct++] = puzzleLine.toCharArray();
}

// create the LinkedList<char[]> of words to find in the puzzle
String line = br.readLine();
while (line != null) {

line = line.toLowerCase().replaceAll("[^a-z]", "");
this.wordList.add(line.toCharArray());

line = br.readLine();
}

br.close();

} catch (FileNotFoundException e) {

e.printStackTrace();
}
}

最佳答案

您可以在 Settings > Editor > Inspections > Java > Error Handling > Overly broad 'catch' block 找到相应的检查。我想指出,默认情况下我没有启用此检查。

有几种方法可以“修复”警告。

使用多捕获

@Override
public void readFile(File file) {

try {
...
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}

}

修改检查

这可能是首选选项,特别是如果您想避免完全禁用检查。从检查的描述来看:

Reports catch blocks which have parameters which are more generic than the exceptions thrown by the corresponding try block.

Use the first checkbox below to have this inspection only warn on the most generic exceptions.

Use the second checkbox below to ignore any exceptions which hide other exceptions, but which may be thrown and thus are technically not overly broad.

最后一段是我们感兴趣的。

enter image description here

关于java - 如何摆脱 try/catch block 的 IOException 捕获上的 IntelliJ 警告/错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54736745/

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