3

I have a doubt about Try Catch blocks. If I get an error in Try block then it will redirect to Catch block as per to the rule. So can I set visible = true to my label into catch block.

i.e lblError.visible=true;

Is it correct as per coding standards? I am new to developing.

4

5 回答 5

2

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

于 2012-05-17T12:18:48.017 回答
0

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

于 2012-10-16T06:41:29.340 回答
0

Catch 块使开发人员能够恢复由 try 块中引发的错误造成的损害。

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

于 2012-05-17T12:22:55.757 回答
0

没错,这有什么问题?也许你不习惯在 catch 块中看到和设置 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
}
于 2012-05-17T12:19:50.463 回答
0

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

于 2012-05-17T12:19:57.313 回答