- 學習 Ruby on Rails
- Rails 2.1 首頁
- Rails 2.1 簡介
- Rails 2.1 安裝
- Rails 2.1 框架
- Rails 2.1 目錄結構
- Rails 2.1 示例
- Rails 2.1 資料庫設定
- Rails 2.1 Active Records
- Rails 2.1 資料遷移
- Rails 2.1 控制器
- Rails 2.1 檢視
- Rails 2.1 佈局
- Rails 2.1 腳手架
- Rails 2.1 和 AJAX
- Rails 2.1 上傳檔案
- Rails 2.1 傳送郵件
- 高階 Ruby on Rails 2.1
- Rails 2.1 RMagick 指南
- Rails 2.1 基本 HTTP 認證
- Rails 2.1 錯誤處理
- Rails 2.1 路由系統
- Rails 2.1 單元測試
- 高階 Ruby on Rails 2.1
- Rails 2.1 提示與技巧
- 快速參考指南
- 快速參考指南
- Ruby on Rails 2.1 有用資源
- Ruby on Rails 2.1 - 資源
- Ruby on Rails 2.1 - 討論
Ruby on Rails 2.1 - 異常處理
執行和異常總是同時發生。如果你開啟一個不存在的檔案,那麼你需要正確處理這種情況,否則你的程式會被認為是質量低下的。
如果發生異常,程式將停止執行。異常用於處理程式執行期間可能發生的各種型別的錯誤,並採取適當的措施,而不是完全停止程式。
Ruby on Rails 中的異常處理類似於 Ruby 中的異常處理。這意味著我們將可能引發異常的程式碼放在begin/end塊中,並使用rescue子句來告訴 Ruby 我們想要處理的異常型別。
語法
begin
# -
rescue OneTypeOfException
# -
rescue AnotherTypeOfException
# -
else
# Other exceptions
ensure
# Always will be executed
end
從begin到rescue的所有內容都受到保護。如果在此程式碼塊執行期間發生異常,則控制權將傳遞到rescue和end之間的塊。
對於begin塊中的每個rescue子句,Ruby 依次將引發的異常與每個引數進行比較。如果rescue子句中命名的異常與當前丟擲的異常型別相同,或者其超類是當前丟擲的異常型別,則匹配將成功。
在哪裡記錄錯誤?
丟擲異常時,您有三個選項:
記錄到內部日誌檔案 (logger.error)
向用戶顯示適當的訊息
重新顯示原始頁面以繼續
錯誤報告到應用程式是透過一個稱為flash的結構進行的。flash是一個雜湊桶,用於儲存您的訊息,直到下一個請求之前才會自動刪除。您可以使用@flash變數訪問它。以下是使用logger模組在內部檔案中記錄錯誤訊息的最簡單形式。
begin
.........
rescue Exception => exc
logger.error("Message for the log file #{exc.message}")
flash[:notice] = "Store error message"
redirect_to(:action => 'index')
end
要在您的檢視或佈局(.html.erb)中顯示來自@flash的所有訊息,您可以新增以下內容:
<% @flash[:notice] -%> <div id="notice"><%= @flash[:notice] %></div> <% end -%>
廣告