I think the best argument for having try/catch/else is that it makes it trivial to translate promises into async/await. Consider this:
``` let result = a() .then(b, c) .catch(d); ``` If we want to translate this 1:1 to try/catch/else in an async function we'll end up with something like this: ``` try { let x, y; try { x = await a(); } catch (e) { y = await c(e); } else { y = await b(x); } return y; } catch (e) { return await d(e); } ``` Doing this without `else` would require one of the workarounds suggested upthread. On Thu, Feb 8, 2018, at 7:13 PM, Claude Pache wrote: > What about the following pattern (labelled block + break)? > > ```js > processSuggestions: { > let suggestions; > try { > suggestions = await fetchSuggestions(); > } catch (e) { > alert('Failed to load suggestions'); > break processSuggestions; > } > showSuggestions(suggestions); > } > ``` > > —Claude _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss