Ruby 4.0 リファレンスマニュアル

class LoadError

[edit]

要約

Kernel?.requireKernel?.require_relativeKernel?.load が失敗したときに発生します。

LoadError を捕捉する例
# lib-a が require できなければ代替の lib-b を使う
begin
  require "lib-a"
rescue LoadError
  require "lib-b"
end

LoadErrorStandardError のサブクラスではないので、例外型を指定しない rescue では捕捉できないことに注意してください。

目次

インスタンスメソッド

継承しているメソッド

Exceptionから継承している特異メソッド
Exceptionから継承しているメソッド

インスタンスメソッド

path -> String | nilRuby 2.0.0 から[permalink][rdoc][edit]

Kernel?.requireKernel?.require_relativeKernel?.load に失敗したパスを返します。

begin
  require 'this/file/does/not/exist'
rescue LoadError => e
  p e.path # => 'this/file/does/not/exist'
end

Kernel?.eval に与えた文字列中での Kernel?.require_relative は、読み込み元のファイルが存在しないため、読み込み先のパスが定まらず、LoadError が発生し、LoadError#pathnil を返します。

LoadError#path が nil になる例
begin
  eval "require_relative 'foo'"
rescue LoadError => e
  p e.path    # => nil
  p e.message # => "cannot infer basepath"
end