【发布时间】:2014-09-15 10:50:15
【问题描述】:
这是一个简单的应用程序:
class App < Sinatra::Base
set :show_exceptions, false
not_found do
slim :err_404
end
post "/doit" do
user ||= User.find(params["userid"]) || halt(404)
end
end
当给定的用户 ID 无效时,应触发 404 错误块,然后呈现 404 页面。相反,Sinatra 在页面上显示“Internal Server Error”,并且此堆栈跟踪打印到控制台:
Problem:
Document(s) not found for class User with id(s) 53d06a8ca7b7d52d11300003.
Summary:
....
我猜halt(404) 没有被调用。我关注了这个blog post about error handling,那么为什么同样的事情在这里不起作用?
【问题讨论】:
标签: ruby exception-handling error-handling sinatra