Restituisci valori ed eccezioni [chiuso]

0

Ho scritto una semplice funzione che restituisce una stringa a seconda di quale condizione è vera. Ecco il mio codice:

private String getMyString() {
    if(!mStrigMember.isEmpty()) {
        return mStrigMember;
    }
    return Function_that_throws_Exception_return_String();
}

Grazie a Function_that_throws_Exception_return_String mi è stato obbligato ad aggiungere un blocco try catch per finire con:

private String getMyString() {
    String TempString = "";
    if(!mStrigMember.isEmpty()) {
        return mStrigMember;
    }
    try {
        TempString = Function_that_throws_Exception_return_String();
    } catch (Exception e) { }
    return TempString ;
}

Ma non è elegante (TempString è creato ma non usato quando il primo ramo era TRUE). Questa è la mia opinione anche se si sta compilando e lavorando correttamente.

Qualche suggerimento?

    
posta user3291059 26.02.2015 - 00:17
fonte

1 risposta

3

Di solito faccio quanto segue, a meno che non ci sia una buona ragione per non farlo. Il controllo membro funge da "Clausola di Guardian" e la necessità di variabili temporanee scompare se si restituisce una costante nel caso di un'eccezione.

private String getMyString() {
    if (!mStrigMember.isEmpty()) return mStrigMember;

    try {
        return Function_that_throws_Exception_return_String();

    } catch (Exception e) {
        return "";
    }
}

Sarebbe meglio, se possibile, catturare una sottoclasse Exception più specifica invece di Exception as Exception include un intero swag load di eccezioni di runtime, ovvero tutto Throwable che non è un errore, che molto probabilmente non è ciò che realmente si vuole.

    
risposta data 26.02.2015 - 01:32
fonte

Leggi altre domande sui tag