Mam wiele funkcji, które albo zwracają coś, albo generują błąd. W funkcji głównej wywołuję każdą z nich i chciałbym zwrócić wartość zwracaną przez każdą funkcję lub przejść do drugiej funkcji, jeśli pierwsza funkcja generuje błąd.
Więc w zasadzie to, co obecnie mam, to:
function testAll() {
try { return func1(); } catch(e) {}
try { return func2(); } catch(e) {} // If func1 throws error, try func2
try { return func3(); } catch(e) {} // If func2 throws error, try func3
}
Ale tak naprawdę chciałbym tylko trygo zwrócić (tj. Jeśli nie zgłasza błędu). Nie potrzebuję catchbloku. Jednak kod taki jak try {}nie działa, ponieważ brakuje (nieużywanego) catch {}bloku.
Umieściłem przykład na jsFiddle .
Czy jest więc jakiś sposób, aby catchusunąć te bloki, osiągając ten sam efekt?
nulli zrobić coś takiegoreturn func1() || func2() || func3();