有人可以解释下面给出的红宝石代码片段吗?

时间:2010-05-17 11:20:35

标签: ruby-on-rails

class ApplicationController < ActionController::Base
  class InvalidParam < StandardError;end
end

在应用程序控制器中包含另一个类的原因是什么? 其他控制器的行为是什么?

3 个答案:

答案 0 :(得分:1)

添加语义 - 私有异常v系统生成的异常

InvalidParam和StandardError之间没有结构差异 - 我打赌开发人员在InvalidParam上分层他/她自己的语义。这很顽皮,因为它会让读者感到困惑。

代码声明了一个名为InvalidParam的嵌套类,用于异常处理。开发人员希望能够使用InvalidParam而不是StandardError来引发和解决异常 - 很可能是因为他们想要区分系统异常和他们自己的异常。

答案 1 :(得分:0)

是否可以声明嵌套类不会在其他任何地方使用?

答案 2 :(得分:0)

在应用程序控制器中包含另一个类的原因是该类仅在控制器内部可见(范围)。其他控制器不会受到影响。