尝试使用catch块来显示错误消息

时间:2012-05-17 12:16:45

标签: c# asp.net ajax

我对Try Catch块感到怀疑。 如果我在Try块中收到错误,那么它将根据规则重定向到Catch块。那么我可以将visible = true设置为 catch block

lblError.visible=true;

根据编码标准是否正确?我是新手。

5 个答案:

答案 0 :(得分:2)

例如,您可以在catch块中将输入元素的可见性设置为false,并显示错误面板。

答案 1 :(得分:0)

那是对的,那有什么不对吗?也许你不习惯在catch块中进行visibling和设置lblError,因为try..catch可以出现在你的代码中的很多地方,如果是的话,你可以在函数中包含这两行并从每个catch块调用它。

您还可以从catch块中抛出异常并在会话级别或应用程序级别的一个位置处理它们,并重定向到一个默认错误页面,您可以在其中获取上一个错误并显示用户友好消息。

您还可以在web.config中启用CustomErrors部分,并在会话中发生任何错误时重定向到一个特定页面。

try
{
  //statements;
}
catch (Exception ex)
{
  ShowError(ex);
}

void ShowError(Exception ex)
{
   //Log or Email error first
   LogOrEmailError(ex);

   // you can write user friendly message based on the exception provided or a generic error message.
   lblError.Visible = true;
   lblError.Text = GetUserFriendlyErrorMessage(ex); // or throw; if you are planing to handle error in global.ascx or through CustomErrors in web.config
}

答案 2 :(得分:0)

非常好。您可以在catch块中编写正常的编码行。

答案 3 :(得分:0)

Catch block使开发人员能够恢复try块中抛出的错误所造成的损害。

因此,如果try块中出现错误,您可以记下应该运行的任何代码。即错误记录

答案 4 :(得分:0)

是的,您可以在catch块中编写任何代码,甚至可以从方法中编写return。有一刻你必须使用finaly{}块来释放你在抛出异常的方法中使用的任何资源(例如,你使用数据库连接)。