マスタリングPerl (12章 エラーの検出と報告)

Perlエラーの基本

($! -> オペレーティングシステムエラー)

  • Perlがシステムに処理を依頼した時、システム側で処理ができない場合
  • Perl組み込み関数は"false"を返し、"$!"にエラーメッセージを設定

($? -> 子プロセスエラー)

  • プログラムによって起動されるサブプロセスでエラーが発生した場合
  • Perlは"$?"に子プロセスの終了ステータスを設定

($@ -> evalからのエラー)

  • eval使用時にエラーが発生した場合

($^E -> オペレーティングシステム固有のエラー)

  • 一部のシステムでは、"$^E"変数から多くの情報を得ることができる
  • 標準のPerlでは、"$!"と同じ

Templateモジュール

Templateモジュールでは、不具合が生じたときに"$Template::ERROR"変数を設定するなど、独自のエラー処理が実装されている。
また、errorメソッドも実装されている。

例外

  • eval
  • die
  • Fatalモジュール
    • 処理失敗時にPerl組み込み関数のエラーから例外を発生させる
    • サブルーチンラッピングを使用することで、戻り値は例外として補足されるため、戻り値のチェックは不要となる
#!/usr/bin/perl

use strict;
use warnings;
use Fatal qw(open);

open my $fh, '>', $file;