程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Effective C#原則44:創建應用程序特定的異常類(1)

Effective C#原則44:創建應用程序特定的異常類(1)

編輯:關於C語言

異常是一種的報告錯誤的機制,它可以在遠離錯誤發生的地方進行處理錯誤。所有關於錯誤發生的的信息必須包含在異常對象中。在錯誤發生的過程中,你 可能想把底層的錯誤轉化成詳細的應用程序錯誤,而且不丟失關於錯誤的任何信 息。你須要仔細考慮關於如何在C#應用程序中創建特殊的異常類。第一步就是 要理解什麼時候以及為什麼要創建新的異常類,以及如何構造繼承的異常信息。當開發者使用你的庫來寫catch語句時,他們是基於特殊的進行時異常在區別為 同的行為的。每一個不同的異常類可以有不同的處理要完成:

try {
 Foo( );
 Bar( );
} catch( MyFirstApplicationException e1 )
{
 FixProblem( e1 );
} catch( AnotherApplicationException e2 )
{
  ReportErrorAndContinue( e2 );
} catch( YetAnotherApplicationException e3 )
{
  ReportErrorAndShutdown( e3 );
} catch( Exception e )
{
 ReportGenericError( e );
}
finally
{
  CleanupResources( );
}

不同的catch語句可以因為不同的 運行時異常而存在。你,做為庫的作者,當異常的catch語句要處理不同的事情 時,必須創建或者使用不同的異常類。如果不這樣,你的用戶就只有唯一一個無 聊的選擇。在任何一個異常拋出時,你可以掛起或者中止應用程序。這當然是最 少的工作,但樣是不可能從用戶那裡贏得聲望的。或者,他們 可以取得異常, 然後試著斷定這個錯誤是否可以修正:

try {
 Foo( );
 Bar( );
} catch( Exception e )
{
 switch( e.TargetSite.Name )
 {
  case "Foo":
    FixProblem( e );
   break;
  case "Bar":
   ReportErrorAndContinue( e );
   break;
  // some routine called by Foo or Bar:
  default:
    ReportErrorAndShutdown( e );
   break;
 }
} finally
{
 CleanupResources( );
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved