0

Visual Studio(successfull)でソリューションを構築し、それを実行しようとしていますが、何らかの理由で次のコード行で例外がスローされ、いくつかの記事を読みましたが、これをどのように処理できるか正確な解決策はありませんでした

public static int GetCurrentPolicyClassId()
    {
        **int policyClassId = (int) HttpContext.Current.Session[AppConstants.SK_POLICYCLASSID];**
        return policyClassId;
    }
4

3 に答える 3

3

呼び出したチェーンの値の1つはnullです。値を取得する前に確認する必要があります。

if(HttpContext != null && 
   HttpContext.Current != null &&
   HttpContext.Current.Session != null &&
   HttpContext.Current.Session[AppConstants.SK_POLICYCLASSID] != null)
{
    // Get the value here.
}
else
{
    // Something was null. Either set a default value or throw an Exception
}
于 2012-08-02T14:56:22.527 に答える
0

おそらくチェックする必要がありますHttpContext != null && HttpContext.Current != null && HttpContext.Current.Session != null

于 2012-08-02T14:57:32.343 に答える
0

例外が一般的に処理できる場合、例外はtry/catch(または)によって処理されます。finally

たとえば、StackOverflowException処理できませんでした。

必要がある:

  • 例外の種類は何ですか
  • その理由を理解する
  • これに基づいて、その例外がアプリケーションの例外的な動作であるかどうかを判断します
  • はいのtry/catch場合、プログラムが処理する必要がある場合はそれを処理するか、プログラムを解放して失敗させます。受信した例外は危険すぎるため、すべてを失敗させる方がよいためです。
  • これが例外的な動作ではない場合は、たとえばnullチェックなどで処理してみてください...

お役に立てれば。

于 2012-08-02T14:58:01.800 に答える