Utilizzo di try / catch per gestire drill down di oggetti profondi che spesso falliscono

2

Ho

try{
    var progress = raw_progress[module_id][modulette_id][tab_id][track_id];
    if(progress.started){
        count += 3;
    }
    if(progress.complete){
        count += 3;
    }
    return count + 'of_6';
}catch(e){
    return '0_of_6';
}

... e l'oggetto raw_progress potrebbe non avere una corrispondenza su nessuno degli elementi nel drill down dell'oggetto.

Potrei fare:

raw_progress[module_id] && 
raw_progress[module_id][modulette_id] && 
...

... ma sembra troppo prolisso. È questo il modo migliore per affrontare il drill-down in un oggetto javascript che potrebbe raggiungere un punto morto in qualsiasi momento?

    
posta RobKohr 30.09.2016 - 16:41
fonte

1 risposta

3

È importante?

Nel tuo esempio, se hai 1 o 3 livelli profondi prima di raggiungere la stessa eccezione, il risultato finale è lo stesso.

Sembra che non ti preoccupi realmente di quale livello viene generata l'eccezione in termini di come funziona la logica. Il che significa che non ha importanza.

Ora, se il tuo ritorno avesse un certo livello di "livelli X passati", ti interesserebbe. Ma nel tuo caso, tutti i fallimenti restituiscono la stessa cosa.

Probabilmente inserirò un commento che spiega la tua cattura, dato che in questo momento stai intercettando le eccezioni tutte senza tentare di registrarle o spiegarle.

    
risposta data 01.10.2016 - 00:20
fonte

Leggi altre domande sui tag