Erro no try-cath Java

Estou com erro no último cath, porem não sei porque, alguem poderia me explicar porque ?
public class Teste2{

public static void criarArquivo() throws IOException {
    File file = new File("C:/temp/arquivo1.txt");
    System.out.println(file.createNewFile());
}    

public static void main(String[] args) {
    try {
        criarArquivo();
        System.out.println("Bloco try"); 
    }catch(IOException e) {
        System.out.println("Bloco IOException"); 
    }catch(FileNotFoundException e) {
        System.out.println("Bloco FileNotFoundException");             
    } 
}

}

A criação de um arquivo não lança a exceção de arquivo inexistente, caso queira capturar qualquer outra exceção que não seja do tipo IO, poderia definir o catch de forma mais genérica!

...
} catch(Exception ex) {

}
1 curtida

Mais resumindo por que acontece o erro ? @Jonathan_Medeiros

Primeiramente o termo é catch e não cath.
Você tem erro no último catch pois o primeiro catch, IOException, é mais genérico que o segundo, FileNotFoundException, então sempre vai cair no primeiro e nunca no segundo.