4番手の執筆者「Ogawa」です。
さて今回はGeneXusで、アプリケーション上の予期せぬエラー(Exception)を取得する方法をご紹介します。
まずGeneXusでは、データベースの予期せぬエラー(SQL Exception)を取得する「error_handler コマンド」はサポートされていますが、アプリケーション上の予期せぬエラー(Exception)はGeneXus16時点でも、サポートされていません。
しかし、GeneXusの機能ではないですが、ネイティブコード(try-catch文)を記述する事で取得する事ができます。
※但し、GeneXusにおいてネイティブコードを記述する事は推奨されておりませんので、どうしても使用したい際に留めておく事を推奨します。 |
アプリケーション上の予期せぬエラーの例:コレクション変数に対して、インデックスを範囲外に指定
1 |
&item = &collection.item(-1) |
try-catch文を記述せずに実行した場合、Tomcatのスタックトレースが表示されます。
try-catch文を記述した例
1 2 3 4 5 6 7 8 |
Java try { // 処理 &item = &collection.item(-1) Java } Java catch (Exception e) { //エラーが発生した際の処理 Msg(!'エラーが発生しました。') Java } |
実行例
MSGコマンドの出力部分をログ出力にしてみたり、Javaのエラーメッセージ取得などが出来れば、実用的になりますね。
今回は以上です、最後までご覧頂きありがとうございました。
◇ 参考リンク(GeneXus Wiki)
・error_handler コマンド
・GeneXus にソースコードを含めるコマンド
GeneXus Tips 新着情報
- 投稿タグ
- Exception, GeneXusTips, エラーハンドラ