Глобальные исключения в области спасения и регистрации в Синатре - PullRequest
5 голосов
/ 12 декабря 2011

Как указать глобальное восстановление в случае исключения, и если вы используете Sinatra для API или приложения, как вы ведете ведение журнала?

Ответы [ 2 ]

6 голосов
/ 12 декабря 2011

404 можно обрабатывать с помощью метода not_found, например:

not_found do
  'Site does not exist.'
end

500 можно обработать, вызвав метод ошибки с блоком, например:

error do
  "Application error. Pls try later."
end

Подробную информацию об ошибке можно получить через sinatra.error in request.env, например:

error do
  'An error occured: ' + request.env['sinatra.error'].message
end
5 голосов
/ 14 февраля 2014

У меня были проблемы с получением этой работы из коробки в моей среде разработки - чтобы заставить ее работать, мне пришлось установить show_exceptions в false в моей конфигурации sinatra.

class BaseApp < Sinatra::Base

  configure { set :show_exceptions, false }

  error do |err|
    raise "Error: #{err}"
  end

end

Этот параметр, если задано значение true, включает страницы ошибок, на которых отображается обратная трассировка и информация о среде, когда происходит незапланированное исключение, но я мог вызвать только пользовательские ошибки, отключив его.

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