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 try
go zwrócić (tj. Jeśli nie zgłasza błędu). Nie potrzebuję catch
bloku. 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 catch
usunąć te bloki, osiągając ten sam efekt?
null
i zrobić coś takiegoreturn func1() || func2() || func3();