首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >is_a?和dRuby对象

is_a?和dRuby对象
EN

Stack Overflow用户
提问于 2008-10-10 10:08:09
回答 2查看 235关注 0票数 3

我正在使用dRuby,基本上我正在调用一个远程方法,该方法返回一个对象。

在客户端,我有这样的代码:

代码语言:javascript
复制
handle_error(response) if response.is_a?(Error)

其中response是DRbObject。(我在使用dRuby之前开发了这段代码,如果出现问题,我将返回一个Error对象)。问题是现在

代码语言:javascript
复制
response.is_a?(Error)

返回"false“,因为该对象实际上是一个DRbObject。关于如何检查应用程序对象的类,您有什么想法吗?

谢谢!罗伯托

EN

回答 2

Stack Overflow用户

发布于 2008-10-12 15:42:33

虽然我不确定DRb是如何管理远程对象的,但我希望它能修改#kind_of?要保持远程对象上的类层次结构,您可以执行以下操作:

代码语言:javascript
复制
response.kind_of?(Error)

如果这不起作用,您可以随时询问它是否响应了特定的方法,然后从那里开始

代码语言:javascript
复制
response.respond_to?(some_method_on_your_errors)
票数 3
EN

Stack Overflow用户

发布于 2008-10-12 15:54:11

你可以不使用Duck Typing来解决这个问题吗?检查对象是否响应调用以获取错误信息,而不是检查对象是否为错误。如果是,则根据该信息处理错误,否则处理(非错误)响应。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/190691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档