class Errno::EXXX
クラスの継承リスト: Errno::EXXX < SystemCallError < StandardError < Exception < Object < Kernel < BasicObject
要約
システム依存のエラーコードのそれぞれに対応する一連の例外クラスです。 Rubyのライブラリ内部でシステムコールや一部のC言語関数が失敗したときに発生します。
実際には「EXXX」というクラスが定義されているわけではありません。「XXX」の部分は下記に列挙したような各種のエラー名が入ります。 例えば、File.open の内部でシステムコール open(2) がエラーコード ENOENT を返すと、Rubyは例外 Errno::ENOENT を発生させます。
Ruby は処理系がコンパイルされるときに、デフォルトで下記リストのような Errno::EXXX クラスを定義しようとします。 動作環境に EXXX というエラーコードが存在しない場合、Rubyはその Errno::EXXX を Errno::NOERROR の別名として定義します。
また、以下の一覧にはないシステムエラーが発生した場合は、 Errno::EXXX (XXX はエラー番号を表す 3 桁の数字) という名前の例外クラスが自動的に作成され、発生します。 (これは Ruby 内部でのみ行われ、 Ruby プログラム上で SystemCallError.new に一覧にないコードを渡してもクラスは作成されません)
それぞれの例外が発生し得るケースについては、この項では記述しません。 例外を発生する各メソッドのマニュアルおよびオペレーティングシステムのマニュアルを参照してください。
エラー名リスト
個々の例外の意味はシステム依存です。 システムのマニュアル errno(3) を参照してください。 Microsoft Windows システムにおいては http://msdn2.microsoft.com/ja-jp/library/5814770t.aspx を参照してください。
- ERROR
- EPERM
- ENOENT
- ESRCH
- EINTR
- EIO
- ENXIO
- E2BIG
- ENOEXEC
- EBADF
- ECHILD
- EAGAIN
- ENOMEM
- EACCES
- EFAULT
- ENOTBLK
- EBUSY
- EEXIST
- EXDEV
- ENODEV
- ENOTDIR
- EISDIR
- EINVAL
- ENFILE
- EMFILE
- ENOTTY
- ETXTBSY
- EFBIG
- ENOSPC
- ESPIPE
- EROFS
- EMLINK
- EPIPE
- EDOM
- ERANGE
- EDEADLK
- ENAMETOOLONG
- ENOLCK
- ENOSYS
- ENOTEMPTY
- ELOOP
- EWOULDBLOCK
- ENOMSG
- EIDRM
- ECHRNG
- EL2NSYNC
- EL3HLT
- EL3RST
- ELNRNG
- EUNATCH
- ENOCSI
- EL2HLT
- EBADE
- EBADR
- EXFULL
- ENOANO
- EBADRQC
- EBADSLT
- EDEADLOCK
- EBFONT
- ENOSTR
- ENODATA
- ETIME
- ENOSR
- ENONET
- ENOPKG
- EREMOTE
- ENOLINK
- EADV
- ESRMNT
- ECOMM
- EPROTO
- EMULTIHOP
- EDOTDOT
- EBADMSG
- EOVERFLOW
- ENOTUNIQ
- EBADFD
- EREMCHG
- ELIBACC
- ELIBBAD
- ELIBSCN
- ELIBMAX
- ELIBEXEC
- EILSEQ
- ERESTART
- ESTRPIPE
- EUSERS
- ENOTSOCK
- EDESTADDRREQ
- EMSGSIZE
- EPROTOTYPE
- ENOPROTOOPT
- EPROTONOSUPPORT
- ESOCKTNOSUPPORT
- EOPNOTSUPP
- EPFNOSUPPORT
- EAFNOSUPPORT
- EADDRINUSE
- EADDRNOTAVAIL
- ENETDOWN
- ENETUNREACH
- ENETRESET
- ECONNABORTED
- ECONNRESET
- ENOBUFS
- EISCONN
- ENOTCONN
- ESHUTDOWN
- ETOOMANYREFS
- ETIMEDOUT
- ECONNREFUSED
- EHOSTDOWN
- EHOSTUNREACH
- EALREADY
- EINPROGRESS
- ESTALE
- EUCLEAN
- ENOTNAM
- ENAVAIL
- EISNAM
- EREMOTEIO
- EDQUOT
特異メソッド
self === other -> bool
-
other が SystemCallError のサブクラスのインスタンスで、 かつ、other.errno の値が self::Errno と同じ場合に真を返します。そうでない場合は偽を返します。
従って、特に other が self.kind_of?(other) である場合には Module#=== と同様に真を返します。 その他に、 Errno::EXXX::Errno == Errno::EYYY::Errno である場合にも Errno::EXXX == Errno::EYYY.new は真を返します。
エラー名は異なるがエラーコードは同じであるような Errno::EXXX 例外をまとめて捕捉するために Module#=== を上書きしていました。 しかし、Ruby 1.8 のリリース時点では同じ errno 値を持つクラスは一つしか作られないようになりました。そのため現在はこのメソッドは実質上 Module#=== と同じ意味しかありません。
- [PARAM] other:
- 任意のオブジェクト
例
p Errno::EAGAIN::Errno p Errno::EWOULDBLOCK::Errno begin raise Errno::EAGAIN, "pseudo error" rescue Errno::EWOULDBLOCK p $! end # => 11 11 #<Errno::EAGAIN: pseudo error>
new() -> Errno::EXXX
new(error_message) -> Errno::EXXX
-
Errno::EXXX オブジェクトを生成して返します。
- [PARAM] error_message:
- エラーメッセージを表す文字列
p Errno::ENOENT # => #<Errno::ENOENT: No such file or directory> p Errno::ENOENT('message') # => #<Errno::ENOENT: No such file or directory - message>
定数
Errno -> Fixnum
-
Errno::EXXX の各クラスに対応するシステム依存のエラーコード値(整数)です。
例:
p Errno::EAGAIN::Errno # => 11 p Errno::EWOULDBLOCK::Errno # => 11
- Ruby 1.9.3 リファレンスマニュアル
- はじめに
- コマンド
- Rubyの起動
- 環境変数
- Ruby言語仕様
- 組み込みライブラリ
- クラス
- モジュール
- オブジェクト
- 例外クラス
- ArgumentError
- EOFError
- Encoding::
CompatibilityError - Encoding::
ConverterNotFoundError - Encoding::
InvalidByteSequenceError - Encoding::
UndefinedConversionError - EncodingError
- Errno::EXXX
- Exception
- FiberError
- FloatDomainError
- IOError
- IndexError
- Interrupt
- KeyError
- LoadError
- LocalJumpError
- Math::DomainError
- NameError
- NoMemoryError
- NoMethodError
- NotImplementedError
- RangeError
- RegexpError
- RuntimeError
- ScriptError
- SecurityError
- SignalException
- StandardError
- StopIteration
- SyntaxError
- SystemCallError
- SystemExit
- SystemStackError
- ThreadError
- TypeError
- ZeroDivisionError
- fatal
- 組み込み関数
(Kernelモジュール関数) - 組み込み定数
(Kernel定数) - 組み込み特殊変数
- 標準添付ライブラリ
- pack テンプレート文字列
- sprintf フォーマット
- Ruby用語集
- Rubyで使われる記号の意味
- 疑似BNFによるRubyの文法
- バージョン情報 / このリファレンスについて