天天看點

Asp.Net Forums中的自定義異常類

Forums中有一個自定義的異常類ForumException,繼承自ApplicationException,與之對應的有一個枚舉ForumExceptionType,用來記錄異常的類型。Forums的自定義異常類主要是對可能出現的各種異常分别進行處理——記錄錯誤日志、消息提示。

當asp.net中抛出異常後,會觸發HttpApplication的Error事件,可以在HttpModule中捕獲到,如Forums就是在其HttpModule中處理Forums的異常:application.Error += new EventHandler(this.Application_OnError);。在捕獲到自定義異常後,根據異常的類别(ForumExceptionType枚舉)對一些重要的錯誤資訊記錄日志(儲存到資料庫的forums_Exceptions表),以供管理者參考。而對于異常,為了給使用者友好的提示,會将根據異常類顯示出比較友好的錯誤資訊。

Forums的自定義異常不僅僅作用在于對錯誤異常的處理,而且還有一個重要作用就是用來做資訊提示用,例如提示使用者注冊成功,那麼抛出一個異常:throw new ForumException(ForumExceptionType.UserAccountCreatedAuto); 然後就會自動跳轉到大家所看到的提示使用者已經成功注冊的資訊。

Forums是怎麼樣根據異常跳轉到對應的資訊呢?前面說了Forums對于每個自定異常都對應有一個錯誤類型枚舉ForumExceptionType,Forums針對每一種語言都有一個Messages.xml,xml的規則如下:

其中的id和ForumExceptionType的int型一一對應

 本文轉自浪子部落格園部落格,原文連結:http://www.cnblogs.com/walkingboy/archive/2005/04/14/137746.html,如需轉載請自行聯系原作者