perl例外のあれこれ(warn, die, carp, croak)

perlにおいて例外を発生するやり方は、普通、warnとかdieとかですが、コール元の情報が表示されないため、例外が発生して事が分かっても、どのように呼ばれて例外が発生したのか分かりづらい事が多々あります。(たぶん)

そんなこんなで、より解析しやすいcarp/croakをちょっと調べてみした。

test_warn();
sub test_warn {
warn 'warn_message';
}
# warn_message at exception.pl line 13.

test_die();
sub test_die {
die 'die_message';
}
# die_message at exception.pl line 18.

use Carp;
test_carp();
sub test_carp {
carp 'carp_message';
}
#carp_message at exception.pl line 23
# main::test_carp() called at exception.pl line 21

use Carp;
test_croak();
sub test_croak {
croak 'croak_message';
}
# croak_message at exception.pl line 28
# main::test_croak() called at exception.pl line 26


といったように、呼び出し元の情報まで表示してくれます。

0 件のコメント:

コメントを投稿

ReactNativeでAndroid対応する話

前提 ReactNativeでiOS版のアプリをリリースしていて、Android版をリリースする話 トラブルシューティング Build.VERSION_CODES.Q が存在しないエラー compileSdkVersionを29以上にすると解決 メモリー足りないエラー Execu...