在asp.net中处理异常

本文关键字:处理 异常 net asp | 更新日期: 2023-09-27 18:23:56

有更好的方法来处理异常吗?我可以做同样的事情,但只尝试一次接球吗?

我需要创建自己的异常类吗?

try
{
   firstname = bd["firstname"].ToString();
}
catch (KeyNotFoundException fe)
{
   firstname = null;
}
try
{
   lastname = bd["lastname"].ToString();
}
catch (KeyNotFoundException fe)
{
   lastname = null;
}
try
{
   phone = bd["phone"].ToString();
}
catch (KeyNotFoundException fe)
{
   phone = null;
}
...
...

在asp.net中处理异常

如果可能,不要对正常程序流使用异常:

firstname = bd.ContainsKey("firstname") ? bd["firstname"] : null;
lastname = bd.ContainsKey("lastname") ? bd["lastname"] : null;
phone = bd.ContainsKey("phone") ? bd["phone"] : null; 

或者(假设您正在访问Dictionary):

bd.TryGetValue("firstname", out firstname);
bd.TryGetValue("lastname", out lastname);
bd.TryGetValue("phone", out phone);

firstname=Convert.ToString(bd["firstname"]);

lastname=Convert.ToString(bd["lastname"]);

phone=转换.ToString(bd["phone"]);

请尝试Convert.ToString("string-Value")方法代替.ToString()以避免出现异常。

如果你想使用开销最小的try-catch块,你可以在一个try块中写所有代码,也可以写多个catch块。

try
{
   firstname = bd["firstname"].ToString();
   lastname = bd["lastname"].ToString();
   phone = bd["phone"].ToString();
}
catch (KeyNotFoundException fe)
{
   firstname = null;
}
catch (KeyNotFoundException ex)
{
   lastname = null;
}

catch (KeyNotFoundException xe)
{
   phone = null;
}