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

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

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

作成日: 更新日:

基本的な使い方

errnoメソッドは、システムコールの失敗時に発生するエラーから、そのエラーがどのような種類であるかを示す数値を取得するメソッドです。

このメソッドは、RubyのSystemCallErrorクラスに属しています。SystemCallErrorクラスは、ファイル操作、ネットワーク通信、プロセス管理など、オペレーティングシステムが提供する機能(これらを「システムコール」と呼びます)の実行に失敗した場合に発生する例外の基底クラスです。例えば、存在しないファイルを開こうとしたり、書き込み権限のないファイルに書き込もうとしたりした場合に、この種類のエラーが発生します。

errnoメソッドが返す数値は「エラー番号」と呼ばれ、オペレーティングシステムがエラーの原因を識別するために用いる固有のコードです。このエラー番号は、C言語の標準ライブラリで定義されているerrno変数に対応しており、どのような問題が発生したのかを具体的に示します。例えば、「ファイルが見つからない」場合は特定の数値、「アクセスが拒否された」場合は別の数値、といったように、エラーの種類に応じて異なる数値が割り当てられています。

プログラミングにおいては、このエラー番号を利用することで、エラーが起きた詳細な原因を特定し、それに応じた適切なエラー処理を実装できます。例えば、ユーザーにわかりやすいエラーメッセージを表示したり、問題解決のためのヒントを提供したりする際に役立ちます。Rubyでは、このエラー番号に対応する定数(例: Errno::ENOENTはファイルが見つからないエラー、Errno::EACCESはアクセス拒否エラー)も提供されており、これらと比較することでエラーの種類を簡潔に判別することが可能です。このメソッドは、堅牢なエラーハンドリングを行う上で非常に重要な役割を果たします。

構文(syntax)

1begin
2  File.open("/nonexistent/path")
3rescue SystemCallError => e
4  e.errno
5end

引数(parameters)

引数なし

引数はありません

戻り値(return)

Integer

このメソッドは、システムコールのエラー番号を示す整数を返します。

関連コンテンツ

関連プログラミング言語