首页 > 解决方案 > Mojo $c->reply->exception vs die?

问题描述

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

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

对比

die "foo\n";

我应该选择其中一个吗?

标签: perlexceptionmojoliciousdie

解决方案


后者更易于阅读,如果需要,可以在适当的级别进行捕获,并且可以通过自动Mojo::Exception包装在开发模式中包含堆栈跟踪和上下文。它还将在 Promise 处理程序或 async sub 中适当地执行,从而导致 Promise 被拒绝。

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


推荐阅读