Boa noite Luis,
Pelo que entendi é uma questão de boas práticas, por exemplo:
Exemplo 1
public void saca (double valor) {
if (this.saldo <valor) {
System.out.println("Saldo Insuficiente");
}else
this.saldo-=valor;
}
}
Exemplo 2
public void saca(double valor) throws SaldoInsuficienteException {
if (this.saldo < valor) {
throw new SaldoInsuficienteException("Saldo: " + this.saldo + ", Valor: " + valor);
}
this.saldo -= valor;
}
Veja que no Exemplo 2 está bem mais claro que o método pode não realizar a operação desejada, o que ainda é reforçado pelo fato de a classe throw utilizada precisar ser declarada na assinatura do método ou tratada por uma try/catch (exceção checked herdada da classe Exception).