2011-01-06 72 views
3

我開始編寫一個簡單的Sinatra應用程序,我試圖瞭解錯誤報告,但由於某種原因,我無法使其正常工作。Ruby和Sinatra

我知道這裏,http://railsapi.com/doc/sinatra-v1.0/,它談論關於錯誤報告/處理的工作,但是當我運行他們的例子時,我無法讓它工作。

require 'sinatra' 

error 400..510 do 
    'Boom' 
end 

get '/say/*' do 
    params[:splat] 
end 

當我運行我的電腦上的應用程序,我得到一個404錯誤代碼,但'Boom'文本不會顯示在瀏覽器,只需在瀏覽器的404頁。我確信我做錯了什麼,但只是無法弄清楚。

回答

4

我會打賭你的瀏覽器。在我的MacBook Pro上:

Chrome「有用地」顯示「糟糕!此鏈接似乎已損壞。」頁。

Safari顯示預期的Boom文本。

Firefox顯示預期的Boom文本。

+0

謝謝!奇怪的是,Chrome會這樣做......呃,回到使用FF進行Sinatra測試;) – dennismonsewicz 2011-01-06 21:51:30

0

看來,Sinatra將Sinatra :: NotFound異常(404)拋出到特定處理程序。只需修改代碼如下,

require 'sinatra' 

not_found do 
    'Boom in NOT_FOUND.' 
end 

error 400..510 do 
    'Boom' 
end 

get '/say/*' do 
    params[:splat] 
end 

它適用於Mac OSX上的Chrome和Firefox。