Эта проблема уже давно меня беспокоила, и я, наконец, понял магическое заклинание, чтобы вернуть обработку ошибок по умолчанию. Оказывается, это не имеет ничего общего с Passenger, но вместо этого вызвано использованием Sinatra :: Base вместо классического (верхнего уровня) приложения. Если вы подкласс Sinatra :: Base, многие параметры имеют разные значения по умолчанию. В этом случае вам нужно изменить параметр:
set :show_exceptions, true if development?
Если вы также хотите снова включить (связанную) возможность использовать обработчик ошибок в приложении, используйте:
set :raise_errors, false
Что позволяет блоку error do ... end
работать так же, как и в классическом приложении.
Дополнительную информацию о различиях между классическими и Sinatra :: Base приложениями можно найти в этом билете на маяк , и есть некоторое обсуждение этого конкретного различия в группе Google .