我有时会编写如下代码:
try doSomething()
catch e
handleError e
这不是漂亮干净的咖啡脚本代码应该是什么样子。
有没有办法写:
try doSomething()
catch e handleError e #<-- will not compile
这将在我的 try/catch 语句中节省大约 33% 的代码行;)
我有时会编写如下代码:
try doSomething()
catch e
handleError e
这不是漂亮干净的咖啡脚本代码应该是什么样子。
有没有办法写:
try doSomething()
catch e handleError e #<-- will not compile
这将在我的 try/catch 语句中节省大约 33% 的代码行;)
then
使用以下关键字编写 try/catch 单行代码的工作方式类似于 if-then 单行代码或循环单行代码:
try doSomething()
catch e then handleError e
finally cleanUp()
如果您愿意,您甚至可以将其放在一行中:
try doSomething() catch e then handleError e finally cleanUp()
来自https://github.com/jashkenas/coffeescript/issues/2413的交叉发布:
FWIW,我发现你可以写
try
compute something
catch error
handle error
unless error?
handle success
这是可能的,因为 CS 将catch
子句的变量放入了周围的范围内,而 JS 不会这样做。甚至有人可能会争辩说,在那个位置上,说unless error?
比else
(这不是一个if
子句)和continue
(这不是一个循环)都更清楚。
坚持oneliners的人甚至可以写
try compute something catch error then handle error unless error? then handle success
这有点酷,有点不可读。
当然,finally
从句必须放在之前unless
。