【问题标题】:Can some one explain the code snippet given below in ruby?有人可以用 ruby​​ 解释下面给出的代码片段吗?
【发布时间】:2011-02-20 08:52:16
【问题描述】:
class ApplicationController < ActionController::Base
  class InvalidParam < StandardError;end
end

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

【问题讨论】:

标签: ruby-on-rails


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • clyfe,InvalidParam 类继承了 StandarError(它是一个存根)。这行代码会做什么?为什么写在application_controller里面?如果你能解释这一点,它真的会帮助我。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 1970-01-01
      • 2016-09-28
      • 2011-07-17
      • 1970-01-01
      • 2020-05-29
      • 1970-01-01
      相关资源
      最近更新 更多