類別 DRb::DRbUnknown
類別
包裝一個封送的物件,其類型在本地端未知。
如果一個物件是由透過 DRb 呼叫的方法傳回,但物件的類別在用戶端名稱空間中未知,或物件是用戶端名稱空間中未知的常數,則仍封送的物件會封裝在 DRbUnknown
實例中傳回。
如果此物件傳遞為透過 DRb 呼叫的方法的引數,則會傳遞封裝的物件。
物件的類別或常數名稱可以從 name
屬性中讀取。封送的物件保存在 buf
屬性中。
屬性
buf[R]
包含封送的未知物件的緩衝區。
name[R]
未知事物的名稱。
未知物件的類別
名稱;未知常數的變數名稱。
公開類別方法
new(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