日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

如何全面的把握一个系统的异常处理

發布時間:2023/12/19 windows 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何全面的把握一个系统的异常处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于一個大的系統來說,異常處理必須要有一個總的策略和方針,并在組織內貫徹執行,否則就很難把異常處理好。

  • 從整個系統全局的角度來看
  • 進程內錯誤----用異常來報告錯誤(內部錯誤);底層模塊通過異常來向高層模塊報告錯誤的發生。
  • 進程間錯誤----用ErrorCode, ErrorMessage, Action來向外部系統報告錯誤(業務錯誤),尤其是對外提供公共服務,除非是對外不公開的子系統,此時可以使用原生的異常來報告錯誤。一旦錯誤超出服務邊界,最好使用ErrorCode, ErrorMessage, Action的方式向外部報告。
  • 從進程內不同模塊的角度來看
  • 底層模塊:DLL,一般不需要Catch異常;盡量多的使用Try--Finally;除非定義的自己的異常。
  • 高層模塊:EXE等,盡量在高層模塊中處理異常,報告錯誤。
  • 從不同的系統類型的角度來講
  • 服務型:7* 24小時,通常情況下要確保系統的任何情況下都不要Crash,系統發生的任何Exception都要有Log,有些情況下可能還需要發郵件來通知。
  • UI型:友好的給出用戶提示信息。必要的時候可以使用AOP來在全局唯一的點來處理Exception。
  • 實際的異常處理規則
  • 異常類必須符合標準,必須可以序列化。
    [Serializable]
    public class ExampleException : ApplicationException
    {
    public ExampleException()
    : base()
    {

    }

    public ExampleException(string message)
    : base(message)
    {

    }

    public ExampleException(string message, Exception inner) :
    base(message, inner)
    {

    }

    protected ExampleException(SerializationInfo info, StreamingContext context) :
    base(info, context)
    {
    }
    }
  • 不能丟掉任何一個異常,通常情況下要使用InnerException來保持原始的異常。 try
    {
    //Read configuration from file
    ...
    }
    catch (FileNotFoundException ex)
    {
    throw new ExampleException("Can't find the configration file.", ex);
    }
  • Catch異常后如果不Throw的話,必須Log異常。
  • 記ExceptionLog時必須包含棧信息,也就是要使用ToString方法。
  • 轉載于:https://www.cnblogs.com/zanxiaofeng/archive/2012/02/17/Exception.html

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的如何全面的把握一个系统的异常处理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。