空引用用户代码未处理的异常

时间:2012-08-02 14:53:01

标签: c# asp.net

我在visual studio中构建我的解决方案(成功)并且我正在尝试运行它但由于某种原因,在下面的代码行中它抛出异常我去了几篇文章但是没有确切的解决方案如何处理

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

3 个答案:

答案 0 :(得分:3)

您调用的链中的一个值为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
}

答案 1 :(得分:0)

您应该检查HttpContext != null && HttpContext.Current != null && HttpContext.Current.Session != null

答案 2 :(得分:0)

任何异常都由try/catch(或finally)处理,如果该异常一般可以处理的话。

例如StackOverflowException无法处理。

你需要:

  • 什么类型的例外
  • 了解它的原因
  • 基于此决定该异常是否是您应用程序中的例外行为
  • 如果是的话,如果程序需要处理它,或者让程序失败,则用try/catch处理它,因为收到的异常太危险了,最好让一切都失败。
  • 如果这不是异常行为,请尝试使用,例如null检查,或其他......

希望这有帮助。