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

【Ruby3.x】Object::NoMatchingPatternError定数の使い方

NoMatchingPatternError定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

NoMatchingPatternError定数は、Ruby 3で導入されたパターンマッチングにおいて、データがどのパターンとも一致しなかった場合に発生するエラークラスを表す定数です。この定数は、パターンマッチング機能を利用する際に、提供された値が定義されたどのパターンとも一致しない状況が発生したことを示します。

Ruby 3で強化されたパターンマッチングは、特にcase式とinキーワードを組み合わせることで、複雑なデータの構造を効率的に分解し、条件に応じた処理を行うのに役立ちます。しかし、もしcase式内で定義されたinパターン群のいずれにもマッチしない値が入力された場合、このNoMatchingPatternErrorが発生します。同様に、右代入(value => pattern)を用いて値が特定のパターンにマッチするかをチェックする際にも、一致が見られない場合にこのエラーが送出されます。

システムエンジニアを目指す方々にとって、このエラーはパターンマッチングを適切に設計することの重要性を教えてくれます。プログラムの安定性を確保するためには、パターンマッチングを利用する際には、想定されるすべてのケースを網羅するパターンを記述するか、あるいは、予期せぬデータが入力された場合に備えて、最終的なフォールバック(例:in => _ のようなワイルドカードパターン)を用意することが不可欠です。これにより、プログラムが予期せぬエラーで停止することなく、堅牢に動作し続けることができます。

構文(syntax)

1begin
2  data = { status: "pending" }
3
4  case data
5  in { value: Integer }
6    puts "値が整数です。"
7  in { error: String }
8    puts "エラーメッセージがあります。"
9  end
10rescue NoMatchingPatternError => e
11  puts "パターンにマッチしませんでした: #{e.message}"
12end

引数(parameters)

引数なし

引数はありません

戻り値(return)

Class

NoMatchingPatternError は、パターンマッチングで一致するパターンが見つからなかった場合に発生する例外クラスです。

関連コンテンツ

関連プログラミング言語