convertir coffee syntax coffeescript try-catch shortcut

syntax - convertir - Breve notación para coffeescript try/catch



js to coff (2)

A veces escribo código como:

try doSomething() catch e handleError e

que no es lo que debería ser el código de coffeescript agradable y limpio.

¿Hay alguna manera de escribir?

try doSomething() catch e handleError e #<-- will not compile

Esto me ahorraría aproximadamente el 33% de las líneas de código en mis declaraciones try / catch;)


Escribir try / catch one-liners funciona como if-then one-liners o loop one-liners usando la palabra clave then :

try doSomething() catch e then handleError e finally cleanUp()

Incluso puede tenerlo en una sola línea si lo desea:

try doSomething() catch e then handleError e finally cleanUp()


Publicación cruzada desde https://github.com/jashkenas/coffeescript/issues/2413 :

FWIW, descubrí que puedes escribir

try compute something catch error handle error unless error? handle success

Esto es posible ya que CS pone la variable de la cláusula catch en el ámbito circundante, lo que JS no hace. Uno incluso podría argumentar eso diciendo a unless error? que unless error? es más claro que los else (esto no es una cláusula if ) y continue (esto no es un bucle) en esa posición.

Las personas que insisten en que los oneliner pueden incluso escribir

try compute something catch error then handle error unless error? then handle success

que es algo genial y algo ilegible.

Una cláusula final tendría que ir antes que la unless , por supuesto.