代码之家  ›  专栏  ›  技术社区  ›  Evan Carroll

魔咒$c->回复->例外vs死亡?

  •  1
  • Evan Carroll  · 技术社区  · 4 年前

    他们似乎做了同样的事情。

    $c->reply->exception('foo');
    return;
    

    vs

    die "foo\n";
    

    我应该选择其中一个吗?

    0 回复  |  直到 4 年前
        1
  •  3
  •   Grinnz    4 年前

    后者更易于阅读,如果需要,可以被捕获在适当的级别上,并且可以通过automatic在开发模式中包含堆栈跟踪和上下文 Mojo::Exception 包装。它还将在承诺处理程序或异步子系统中正常运行,导致承诺被拒绝。

    你可以看到这里是如何处理的( $next->() 是对调度链的调用): https://metacpan.org/source/SRI/Mojolicious-8.33/lib/Mojolicious.pm#L208-214