【发布时间】:2020-06-01 12:24:10
【问题描述】:
他们似乎做同样的事情。
$c->reply->exception('foo');
return;
对比
die "foo\n";
我应该选择一个而不是另一个吗?
【问题讨论】:
标签: perl exception mojolicious die
他们似乎做同样的事情。
$c->reply->exception('foo');
return;
对比
die "foo\n";
我应该选择一个而不是另一个吗?
【问题讨论】:
标签: perl exception mojolicious die
后者更易于阅读,可以根据需要在适当的级别进行捕获,并且可以通过自动 Mojo::Exception 包装在开发模式下包含堆栈跟踪和上下文。它还会在 Promise 处理程序或 async sub 中进行适当的操作,从而导致 Promise 被拒绝。
你可以在这里看到它是如何处理的($next->() 是对调度链的调用):https://metacpan.org/source/SRI/Mojolicious-8.33/lib/Mojolicious.pm#L208-214
【讨论】: