首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DRb::DRbUnknown

Parent:Object

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

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

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

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

属性

bufR

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

nameR

未知事物的名字。

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

公共类方法

新(err,buf)显示源

创建一个新的DRbUnknown对象。

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

代码语言:javascript
复制
# 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异常。

代码语言:javascript
复制
# File lib/drb/drb.rb, line 508
def exception
  DRbUnknownError.new(self)
end

reload()显示源

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

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

代码语言:javascript
复制
# File lib/drb/drb.rb, line 503
def reload
  self.class._load(@buf)
end

扫码关注腾讯云开发者

领取腾讯云代金券