catch と catchQuiet を使用してエラーを処理する

catch 文はエクスプレッションを評価して、エクスプレッションがエラーを起こす場合には true を返します。ただし、スクリプトは停止しません(catch の外側でエラーが生じた場合)。

この機能を使用すると、if 文中の代入やコマンドを試験的に実行でき、catch が true を返す場合、エラー対処コードを実行することができます。

int $divisor = 0;
if ( catch ($factor = 42/$divisor) ) {
 print "Attempt to divide by zero caught\n";
}

MEL が catch 文中にゼロで割り算をするエラーを見つけると、自動的にエラー メッセージを出力しますが、スクリプトは停止しません。catch 文は true を返すため、if 文によってブロックが実行されます。

自動的にエラーを出力せずにエラーを見つけるには、 ではなく、catchQuietcatchQuiet 文を使用します。