在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;
}
...
...
如果可能,不要对正常程序流使用异常:
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;
}