Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】TracePoint::raised_exception()メソッドの使い方

raised_exceptionメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

raised_exceptionメソッドは、Rubyプログラムの実行を詳細に追跡・監視するためのTracePointクラスに属し、プログラム内で例外が発生した際にその例外オブジェクトを取得するメソッドです。TracePointは、メソッドの呼び出しや例外の発生など、Rubyの実行における特定の「イベント」を検出する役割を担っています。

このraised_exceptionメソッドは、TracePointオブジェクトが「raise」イベント、つまりプログラム内で例外が実際に送出された(発生した)ことを検出した場合に、そのイベントで送出された例外のインスタンス(例外オブジェクト)を返します。例外オブジェクトには、エラーの種類やメッセージ、発生した場所などの重要な情報が含まれています。

システム開発において、このメソッドはデバッグ作業やエラーの原因究明に非常に有用です。例えば、本番環境で予期せぬエラーが発生した際に、どのような種類の例外が、どのコード箇所で発生したかを詳細に分析し、アプリケーションの安定性を高めるための改善点を見つけるのに役立ちます。また、特定の例外の発生状況を監視し、その情報をログに記録するといった、高度なエラーハンドリングの仕組みを構築する際にも活用できます。raiseイベント以外のTracePointオブジェクトに対してこのメソッドを呼び出した場合は、例外は発生していないためnilを返します。これにより、開発者はRubyプログラムの内部動作を深く理解し、堅牢なシステム構築に貢献できます。

構文(syntax)

1TracePoint.new(:raise) do |trace_point|
2  if trace_point.event == :raise
3    exception_object = trace_point.raised_exception
4    puts "Exception raised: #{exception_object.class}: #{exception_object.message}"
5  end
6end.enable do
7  begin
8    raise "Something went wrong!"
9  rescue RuntimeError => e
10    # The :raise event fires before the rescue block is entered.
11  end
12end

引数(parameters)

引数なし

引数はありません

戻り値(return)

Exception | nil

TracePoint#raised_exception は、発生した例外オブジェクト、または例外が発生していない場合は nil を返します。

関連コンテンツ