gra*_*hez 2 ruby heroku sinatra
我在Sinatra模块化应用程序中重定向错误时遇到问题.我正在Heroku上部署,当出现错误时,应用程序就会死掉.
我希望它能够捕获此错误,重定向到错误页面并正常运行.
我在基类中设置了如下内容:
set :raise_errors, false
Run Code Online (Sandbox Code Playgroud)
和
error do
redirect to('/')
end
Run Code Online (Sandbox Code Playgroud)
但是当我raise从路径块中发生错误时,它就会转到标准的Sinatra错误页面.
我需要做些什么来捕捉我的错误并重定向?
你还需要
set :show_exceptions, false
Run Code Online (Sandbox Code Playgroud)
这是一个简单的演示
require "sinatra"
class App < Sinatra::Base
set :raise_errors, false
set :show_exceptions, false
get '/' do
return 'Hello, World!'
end
get '/error' do
return 'You tried to divide by zero!'
end
get '/not-found' do
return 'There is nothing there'
end
get '/raise500' do
raise 500
end
get '/divide-by-zero' do
x = 5/0
end
error do
redirect to('/')
end
error 404 do
redirect to('/not-found')
end
error ZeroDivisionError do
redirect to('/error')
end
end
Run Code Online (Sandbox Code Playgroud)
没有:show_exceptions设置/raise500并/divide-by-zero返回通用的Sinatra错误页面,但有了它,它们会像你期望的那样重定向.
| 归档时间: |
|
| 查看次数: |
1968 次 |
| 最近记录: |