Как спасти исключение в модели? - PullRequest
4 голосов
/ 24 августа 2009

в рельсах.

Исключение может спасти в классе контроллера, но в классе модели - нет.

Как спасти исключение в модели?

Ответы [ 2 ]

12 голосов
/ 24 августа 2009

Вы можете выполнять обработку исключений в любом месте приложения rails, поскольку оно является частью Ruby, а не частью Rails. Везде, где вы хотите поймать ошибки, просто оберните это так:

begin
  SomethingElse.doSomething(x, y)
rescue Exception
  ErrorLogger.log(Time.now, "Something went wrong!")
end

Обратите внимание, что вы всегда должны "спасать Исключение", а не просто "спасать". Простое использование «rescue» перехватит только StandardError, который является подклассом Exception (то есть что-то может пройти через то, что вы не хотите пройти).

Также, как обычно, вы можете повысить исключение, выполнив:

raise ArgumentError, "Illegal arguments!"

в любом месте вашего кода, будь то модель или контроллер.

1 голос
/ 24 августа 2009

Если я не ошибаюсь, вы можете использовать обработку ошибок в любом месте Ruby. Что ты пытаешься сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...