2012-05-17 221 views
3

我有一个怀疑TryCatch块。 如果我在Try块中遇到错误,那么它将按照规则重定向到Catch块。因此,我可以将我的标签可见= true设置为catch catch尝试catch块显示错误消息

lblError.visible=true;

它是正确的,因为每个编码标准?我是新开发的。

回答

2

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

+0

感谢所有我得到了我的答案。 –

+1

不要忘记接受答案。 –

0

没错,那有什么不对?也许你对visibling和设置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 
} 
+0

你很可能不想向用户显示实际的错误信息。它很可能会超过他们的头。创建你自己的友好版本将是首选。 –

+0

@Josh真,人们不会试图向用户显示错误信息! – Writwick

+0

是真的,我在代码中为解释它写了注释。 –

0

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

+0

是的,多数民众赞成我想听...实际上,我很困惑,写在代码捕捉或不。 –

+0

@FrankJames:事实上,我们使用这种技术(在catch块中编写)来调用一个记录器方法/函数,当有异常抛出时它会在数据库中插入一些值。这样我们就可以跟踪错误和异常情况。 –

0

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

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

0

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