Ruby 2.4

DRb::DRbUnknown

class DRb::DRbUnknown

Parent:Object

包装本地未知类型的编组对象的类。

如果一个对象是通过drb调用的方法返回的,但是对象的类在客户端名称空间中是未知的,或者对象在客户端名称空间中是未知的常量,那么仍然编组的对象将返回包装在DRbUnknown实例中。

如果此对象作为参数传递给通过drb调用的方法,则会传递包装的对象。

可以从name属性读取对象的类或常量名称。编组对象保存在buf属性中。

属性

bufR

缓冲区包含编组的未知对象。

nameR

未知事物的名字。

未知对象的类名; 未知常量的变量名称。

公共类方法

新(err,buf)显示源

创建一个新的DRbUnknown对象。

buf是一个包含无法解组的编组对象的字符串。err是解组失败时引发的错误消息。它用于确定解组对象的名称。

# File lib/drb/drb.rb, line 465 def initialize(err, buf) case err.to_s when /uninitialized constant (\S+)/ @name = $1 when /undefined class\/module (\S+)/ @name = $1 else @name = nil end @buf = buf end

公共实例方法

exception() 显示源

创建一个包含此对象的DRbUnknownError异常。

# File lib/drb/drb.rb, line 508 def exception DRbUnknownError.new(self) end

reload()显示源

尝试再次加载封装的编组对象。

如果对象的类现在在本地已知,则该对象将被解组并返回。否则,将返回一个新的但相同的DRbUnknown对象。

# File lib/drb/drb.rb, line 503 def reload self.class._load(@buf) end