¿Cómo deshacerse de las advertencias / errores en la captura IntelliJ IOException del bloque try / catch?

LuminousNutria:

Lo siento. Estoy seguro de que esto ha sido contestada por aquí antes. Sin embargo, no puedo encontrarlo.

En esencia, tengo un bloque try / catch en el que parecen llegar un aviso o error, no importa lo que hago. catch(IOException e)da como resultado una advertencia "demasiado amplia". catch (FileNotFoundException e)como resultado errores de código que requiere una captura IOException. catch (FileNotFoundException | IOException e)da como resultado un "tipos en múltiples capturas deben ser disjuntos" error. Por último, poner dos bloques catch (uno para cada excepción) se traduce en una "rama 'captura' idéntica a 'FileNotFoundException'" advertencia.

No quiero a un sistema de alerta de edición de IntelliJ ya que es útil.

¿Cómo puedo hacer que el bloque try / catch a continuación funcionan sin advertencias o errores?

@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();
}
}
repollo:

Puede encontrar la inspección correspondiente a Settings > Editor > Inspections > Java > Error Handling > Overly broad 'catch' block. Me gustaría señalar que esta inspección no estaba activado por defecto para mí.

Hay un par de maneras para "fijar" la advertencia.

Utilice Multi-Catch

@Override
public void readFile(File file) {

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

}

Modificar inspección

Esta es probablemente la opción preferida, especialmente si se quiere evitar la desactivación de la inspección por completo. A partir de la descripción de la inspección:

Informes coger bloques que tienen parámetros que son más genérico que las excepciones lanzadas por el correspondiente intento bloque.

Utilice la primera casilla de abajo para que esa inspección sólo se advierten en las excepciones más genéricos.

Utilice la segunda casilla de abajo para ignorar las excepciones que se ocultan otras excepciones, pero que puede ser lanzado y por lo tanto son técnicamente no es excesivamente amplia.

El último párrafo es lo que nos interesa.

introducir descripción de la imagen aquí

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=175464&siteId=1
Recomendado
Clasificación