在这个例子中,我有一些客户端代码,MyModule
它在一个名为Exception
. 其中MyModule
有一个rescue
引用Exception
. 问题是,当它需要成为核心 Ruby 的基本异常类时,ruby 将名称解析Exception
为(模块)。MyModule::Exception
这是一个代码插图来说明我的意思:
puts Exception
puts Exception.class
module MyModule
module Exception
class CustomError < StandardError
end
end
end
module MyModule
puts Exception
puts Exception.class
end
结果输出是:
Exception
Class
MyModule::Exception
Module
当没有模块来区分它时,如何强制第二个Exception
引用解析为核心 ruby 类?Exception
我已经尝试过 Kernel::Exception 并调查是否有一种方法可以将模块放入其中,但似乎只有#name
,它会产生类的完全限定名称。