第39回 evalを学習しよう part2
evalを使えばPerlでも例外処理ができます。
はい 拍手〜〜〜 パチパチパチ
ということでevalを使った例外処理の例をみていきましょう。
次のソースをみてみてください。
Perlでは0での割り算はできません。
0で割り算すると、エラーとなりその行以降の処理はなされません。
ソース
use strict; my $c = 10; my $d = 0; my $e = $c/$d; # あ〜〜〜 0で割っちゃだめーーー print 'このあとも処理をつづけたい', "\n";
結果
Illegal division by zero at bingo.pl line 6.
このようにエラーメッセージが出て、処理が止まってしまいました。
が、しかし! evalを使うとどうでしょう?
evalを使ったソース
use strict; my $c = 10; my $d = 0; eval { my $e = $c/$d; # あ〜〜〜 0で割っちゃだめーーー }; print 'このあとも処理をつづけたい', "\n";
結果
このあとも処理をつづけたい
ね。ちゃんと 0 で割っちゃてるあとの行も処理されるわけです。
簡単でしょ。
このように例外を捕まえたいところを
eval { };
で囲えばよいのです。最後の;(セミコロン)が抜けると文法エラーなので忘れないように注意です。
それでは また〜