处理asp.net中的异常

use*_*696 2 .net c# asp.net exception try-catch

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

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

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;
}

...
...
Run Code Online (Sandbox Code Playgroud)

Tim*_*ter 5

如果可能,请勿对正常的程序流使用异常:

firstname = bd.ContainsKey("firstname") ? bd["firstname"] : null;
lastname = bd.ContainsKey("lastname") ? bd["lastname"] : null;
phone = bd.ContainsKey("phone") ? bd["phone"] : null; 
Run Code Online (Sandbox Code Playgroud)

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

bd.TryGetValue("firstname", out firstname);
bd.TryGetValue("lastname", out lastname);
bd.TryGetValue("phone", out phone);
Run Code Online (Sandbox Code Playgroud)