->cb
[3] 他の AnyEvent
のコールバックと同じく、例外を投げないことが期待されています。
例外が投げられた場合の扱いは実装依存です。
->croak
[2] 例外を通知したい時は croak
メソッドを呼び出すと良いです。
Promise
における die
に相当します。
->begin
/->end
[1] 便利ではあるのですが、複雑なプログラムになればなるほど、見通しが悪くなってデバッグ困難になります。 できれば避けるべきです。
[4] begin
と end
がコード上で離れていて、
しかも複数組あったりすると、どれとどれが対応関係にあるのかさっぱりわかりません。
[6] begin
は1箇所で end
は条件分岐があって複数箇所、
のような可読性の下がるコードを書いてしまいがちです。
[5] 一度しか実行されてないと思っていたつもりが実は複数回実行されるコールバック内で
end
を呼んでいた、のように気付かないうちに実行してしまうことがあります。