2

我正在使用ASP.NET/C#.

这是一个示例,我使用lambda expression.

try
{
    using (var db = new DataClasses1DataContext())
    {
        var logSubGroup = db.sys_Log_Account_SubGroups
             .SingleOrDefault(subGroup => subGroup.cSubGroupName.Equals(subGroupName));
        logSubGroup.cRejectedBy = rejectedBy;
        logSubGroup.dRejectedOn = DateTime.Now;
        logSubGroup.cAuthorizedStatus = "Rejected";
        db.SubmitChanges();
    }
}
catch (Exception ex)
{
}

如您所见,我没有在里面做任何事情catch() block

我知道这是一种糟糕的使用方式try catch

任何人都可以帮助我以try catch block正确的方式使用。

我只是不知道里面必须有什么catch block

欢迎任何建议。

4

4 回答 4

3

根本不要使用 try-catch 块,除非您有特定的理由来捕获特定的异常

相反,使用一种全局异常处理方法(ASP.NET 中的Application_Error)来全局捕获未处理的异常,显示错误消息并记录错误。

于 2012-08-03T05:48:23.803 回答
3

作为一般规则,如果捕获异常的代码无法解决问题,则无需捕获异常,然后继续正确运行。在您所提供的代码中,您能否确定可以在 catch 块中采取的一些操作,以将程序恢复到您相信它可以继续运行的状态?如果没有,那么就让异常在堆栈中冒泡。

于 2012-08-03T05:50:03.360 回答
2

理想情况下,您应该处理错误,以便您的应用程序可以从中恢复,但至少您应该记录它。你不应该只是吞下它。此外,您不应该处理您不期望或无法处理的异常。例如,当打开一个文件时,可以预期并处理 FileNotFoundException,例如通过显示警告并让用户选择另一个文件。

于 2012-08-03T05:49:53.923 回答
1

从理论上讲,您可以决定在您的 catch 语句中可能会发生什么样的异常,当然,如果您处于开发阶段,这样做并不是完全错误的,我强烈不建议您使用 try catch,因为您可能会错过一些重要的可能发生的异常,您通常也希望修复,如果捕获到异常或错误,您应该包含一条消息或应该发生的操作 可以通知用户一条消息,该操作没有很好地执行,但理想情况下您必须让用户知道出了什么问题,因此在这种情况下,更好的错误处理是一种方法

于 2012-08-03T05:52:22.903 回答