Bom dia
Você pode até tentar tratar um erro com o uso de IFs, mas você tem que ter em mente que, o IF, é a representação de uma condição, então ele executará um código se a condição que foi passada como parâmetro for verdadeira, caso não seja, é executado o ELSE.
Diferentemente do TRY/CATCH aonde o código dentro do TRY não precisa de uma condição, este código será executado independente, ele só cairá no CATCH, se, por acaso, houver algum.
Explicado um pouco sobre as duas condições, voltamos ao exemplo anterior:
int[] array = new int[10]
for (int i = 0; i <= 15; i++) {
array[i] = i;
System.out.println(i);
}
Qual o erro forçado no código acima? O array, quando percorrido, irá exceder o limite do índice, fazendo com que o compilador detecte o erro, mas se você executar este código da maneira que esta, ele retornará uma mensagem citando o erro que acabei de mencionar.
Qual a função do TRY/CATCH? Tratar o erro de uma maneira que, mesmo havendo este erro, não pare a execução do programa inteiro:
int[] array = new int[10]
try {
for (int i = 0; i <= 15; i++) {
array[i] = i;
System.out.println(i);
}
} catch (Exception e) {
System.out.println("Erro: " e.getMessage());
}
O que acontece agora? Ele tentar (try) executar o código do FOR, se, por acaso houver uma exceção (exception), ele pega (catch) esta exceção e executa o código presente no escopo, no caso o código do CATCH.
Eu entendo o motivo de você pensar em tratamento de erro usando o IF/ELSE, pelo simples motivo de pensarmos:
SE (alguma coisa) {
executa este código
} SENÃO {
executa este outro código
}
Já o TRY/CATCH é:
TENTA {
executa o código
} PEGA (EXCEÇÃO) {
executa este outro código
}
Não sou um bom programador JAVA, estou iniciando, mas espero ter ajudado.