1. 学习
  2. /
  3. 课程
  4. /
  5. PostgreSQL におけるトランザクションとエラー処理

Connected

练习

コンテキストスタックを取得する

他の言語でいうスタックトレースに相当するスタックのコンテキストを取得すると、複雑で入れ子になった関数のデバッグにとても有効です。

以下のコードでは、スタックのコンテキストを取得し、ネストされた両方のブロックの例外ハンドラーで記録したいと考えています。続いて、errors テーブルでその出力を確認し、この関数で例外が起きている原因の調査に役立てます。

说明

100 XP
  • スタックのコンテキストを保持する text 変数 exc_context を宣言します。
  • 最初のハンドラーで、PG_EXCEPTION_CONTEXT を exc_context 変数に格納します。
  • 2 つ目のハンドラーで、PG_EXCEPTION_DETAIL を exc_detail 変数に格納します。
  • 両方のブロックで、エラーメッセージとスタックのコンテキストの両方を記録します。