1. ホーム
  2. perl

[解決済み] Perlで何か悪いことが起こったとき、croak()とdie()のどちらが良いのでしょうか?

2022-02-14 08:57:10

質問

パールクリティック は、次のようなコード、つまり全く問題なく動作するDBIの定型的なもの、が必要であることを訴えています。 croak ではなく die :

# Connect to database
my $db_handle = DBI->connect( $url, $user, $password ) or die $DBI::errstr;

これだけ、ダイは問題なく動くようですが。

侍のPerl戦士にとって、物事がうまくいかなくなったときに実際に死ぬよりも、croakの方が名誉がないと思うのですが。冗談はさておき

なぜ croak ではなく die ?

を無視すると、どのような結果になるのでしょうか。 パールクリティックの のアドバイスをお願いします。

解決方法は?

から http://www.perlmonks.org/?node_id=685452

dieは、あなた自身やあなたのコードが正しくなかったときに使います。die "error: $!" はエラーが発生した行にあることを示します。croak "error: $!" は呼び出し側があなたのコードを呼び出した行にあることを示します。

この場合、エラー(DBへの接続エラー)は呼び出し側には関係なく、接続を行った行に関係するものなので、私なら die .