ライブラリ内部で発生したエラーをキャッチする方法がわかりません(>_<)
----------------------------------
#!/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』の読み方と意味。
-
名古屋の栄と錦は治安悪い?
-
NumericUpDownの数値を選択済み...
-
フォームを開く時のイベント処理
-
項目数は英語で
-
クラッシュダンプが発生した時...
-
受け取った値が"undefined"と表...
-
メモリリーク対策
-
ティップネスの選曲について
-
ブック開いたときのフォーカス指定
-
エアー漏れの流量の計算式を教...
-
フリップフロップについての質...
-
MDIの子フォームでフォーカスア...
-
word
-
数式中の文字をCambria Math以...
-
イラレでダブルクリックで文字...
-
illustratorとExcelは連携出来...
-
PowerPoint SmartArtの箇条書...
-
PDF→CSVへ変換
-
Google マップに同心円と文字を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
名古屋の栄と錦は治安悪い?
-
『μg』の読み方と意味。
-
NumericUpDownの数値を選択済み...
-
テキストボックスからフォーカ...
-
VB.NETのテキストボック...
-
エアー漏れの流量の計算式を教...
-
VB.NET でのLaod/unLoad につ...
-
フォームを開く時のイベント処理
-
vba メモリーリーク
-
項目数は英語で
-
シリアルフラッシュメモリをな...
-
TextBoxにカーソルがあるかない...
-
ヒント表示について
-
mailの送信音がしなくなったの...
-
ブック開いたときのフォーカス指定
-
VBのレコードセットを閉じない...
-
コンピュータ言語paythonのエデ...
-
vc++2005エラーメッセージ
-
C言語の関数の実引数と仮引数の...
-
globalと$GLOBALSの違いは?
おすすめ情報