![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
ライブラリ内部で発生したエラーをキャッチする方法がわかりません(>_<)
----------------------------------
#!/usr/bin/perl
use XML::AAA;
my $aaa = "bbb";
my $ccc = XML::AAA->new($aaa);
----------------------------------
こんなスクリプトを書いたとします。
XML::AAAが、newするときにXML::BBBを使っているとします。
引数が不正でXML::BBBでエラーが発生したときに
どうやってそのエラーをキャッチしたらいいかわかりません。
eval{my $ccc = XML::AAA->new($aaa);}
if($@){&error_handling;}
とやってみても、うまくキャッチできません。
また、$aaaが正しい引数かどうかを確認するのは、ちょっと難しいので、やはり、エラーをキャッチする方向で考えたいです。
ほかにどのような方法があるか教えてください。。
No.1ベストアンサー
- 回答日時:
$ccc に返る値を判別するんじゃなくてですか?
であれば、Perl には例外処理がないので、シグナルをキャッチするしかないんじゃないかと思います。
たとえば、
$SIG{'TERM'} = "terminal";
と宣言すると、TERM シグナルが発生した場合に自動的に terminal(); 関数が呼ばれます。
利用可能なシグナルの一覧を調べるには、
perl -e "$,=qq/\n/;print keys(%SIG);"
をコマンドラインから入力してください。
シグナルよくわかっていなくて、
ちょっと調べたくらいじゃ、うまくいきませんでした。
$SIG{'TERM'} = "terminal";
宣言すると、正常終了のときもterminalがよばれちゃいます。
シグナル勉強する前に
if (eval{my $ccc = XML::AAA->new($aaa)}){
} else {
&teminal;
}
とやってみると、なんとなく思惑通りに動いているっぽいので
これで進めてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- Excel(エクセル) Excel VBA 3 2023/04/22 10:46
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- JavaScript jsonテキストデータの並び替えができるサービスを教えてください 2 2022/08/05 20:16
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- JavaScript JavaScript|特定URLだった時、特定の要素を変更するコードの書き方を教えてほしいです 2 2023/08/25 21:43
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
名古屋の栄と錦は治安悪い?
-
『μg』の読み方と意味。
-
VB.NET でのLaod/unLoad につ...
-
項目数は英語で
-
画像処理のラプラシアンフィル...
-
充電式インパクトドライバ-の...
-
コンピュータ言語paythonのエデ...
-
デュアル契約途中で携帯番号を...
-
データベースの接続に関する質問
-
テキストエディターの文字化け
-
PHPのみで、動的なセレクトボッ...
-
アルティマニア(FF8)のシー...
-
シリアル通信について
-
VBのレコードセットを閉じない...
-
一部の文字のみ文字化けします
-
word
-
バイナリファイルの編集
-
PowerPoint SmartArtの箇条書...
-
数式中の文字をCambria Math以...
-
Illustratorテキストエリアへ塗...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
名古屋の栄と錦は治安悪い?
-
『μg』の読み方と意味。
-
NumericUpDownの数値を選択済み...
-
VB.NET でのLaod/unLoad につ...
-
テキストボックスからフォーカ...
-
vba メモリーリーク
-
VB.NETのテキストボック...
-
フォームを開く時のイベント処理
-
ヒント表示について
-
コンピュータ言語paythonのエデ...
-
C++の例外処理
-
シリアルフラッシュメモリをな...
-
エアー漏れの流量の計算式を教...
-
ob_start()した後、ob_flush()...
-
シリアル通信について
-
携帯電話のマイクロSDカードに...
-
項目数は英語で
-
TextBoxにカーソルがあるかない...
-
mailの送信音がしなくなったの...
-
PDFの余白、黄ばみ除去等の加工...
おすすめ情報