é correto fazer isso?

Pessoal, Bom dia a Todos!

estou com uma certa duvida na chamada de alguns metodos no java,

resolvi de uma maneira porém eu achei meio “gambiarra” queria saber como fazer a mesma coisa seguindo um padrao…


try {
                    //executa este metodo
                    nf = ler.lerNF(new File(listArquivos[i]));
                    nf.setLoginInc(user.getLogin());
                    nf.setDateInc(dataAtual);
                    
                } catch (Exception e) {
                   //se cair no catch tentar este outro metodo
                    nf = ler1.lerNFKM(new File(listArquivos[i]));
                    nf.setLoginInc(user.getLogin());
                    nf.setDateInc(dataAtual);
                }
nf = null;
File arquivos = new File(listArquivos[i]);

try {  
    nf = ler.lerNF(arquivos);  
} catch (Exception e) {  
    //como não queres tratar esta excepção, pelo menos será boa ideia colocar aqui algum log
}  

if (nf == null){
    nf = ler1.lerNFKM(arquivos);
}

nf.setLoginInc(user.getLogin());  
nf.setDateInc(dataAtual);  

O certo seria vc criar uma exceção e no seu primeiro método lançá-la caso este não seja capaz. Ter um bloco de catch que captura sua exceção personalizada e aí sim tentar o outro método.
Se no bloco catch capturar um exception genérico, vc pode perder qualquer informação de algum outro erro q possa ter dado.