簡體   English   中英

如何處理總是在asp.net C#中給出異常的空會話?

[英]How to handle empty session which always gives exception in asp.net C#?

每當Session中的數據為空時,它總是會發生異常,我必須使用try catch流來處理該流,

try
{
  Username = Session["Username"].ToString();
}
catch(Exception e)
{
  Username = "";
}

有什么我可以檢查會話是否為空的東西。 我認為這不是處理此問題的好方法。

在調用ToString之前檢查null

try
{
     if(Session["Username"] != null)
         Username = Session["Username"].ToString();
}
catch(Exception e)
{
  Username = "";
}

您也可以使用三元條件運算符 ,並且不需要try-catch塊。

Username = Session["Username"] == null ? "" Session["Username"].ToString();

可以使用Convert.ToString()而不是使用ToString() Convert.ToString()

string username = Convert.ToString(Session["Username"]);

如果Session["Username"]為null,它將返回一個空字符串。

我更喜歡為會話添加包裝器屬性。

public string Username
{
   get{ if(Session["Username"]!=null) return Session["Username"].ToString() else return String.Empty; }

   set{ Session["Username"] = value; }

}

這樣嘗試

 try
    {

    if(Session["Username"] != null)
      {
      Username = Session["Username"].ToString();
      }
    }
    else
    {
     //Do Something else
    }

好了,您可以使用字符串類來檢查會話中的字符串是否為NULL。 您可以像這樣實現。

if (string.IsNullOrEmpty((string)Session["Username"]))
{
   //do your stuff
   Username = Session["Username"].ToString();
}

希望這會幫助你。

您可以使用:

try
{
  if(Session["Username"]!=null)
  {
    Username = Session["Username"].ToString();
  }
}
catch(Exception e)
{
  Username = "";
}

為了避免空指針異常,您應該使用

Convert.ToString(Session["Username"]);

而不是

Session["Username"].ToString();

由於Convert.ToString()也處理空結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM