use*_*521 12 c# asp.net try-catch-finally .net-3.5
我在.net 3.5中创建asp.net web应用程序,我想知道何时使用以及何时不使用Try Catch Finally块?特别是,我的大部分try catch都围绕执行存储过程并填充文本字段或网格视图?当您执行存储过程并填充数据显示控件时,您会使用Try Catch EVERYTIME吗?
我的代码块通常如下所示:
protected void AddNewRecord()
{
try
{
//execute stored proc
// populate grid view controls or textboxes
}
catch (Exception ex)
{
//display a messagebox to user that an error has occured
//return
}
finally
{ }
}
Run Code Online (Sandbox Code Playgroud)
Chr*_*isF 11
答案是"它取决于".
您可能希望try{...} catch {...}在每个原子操作周围使用,以便在出现问题时可以回滚到上一个良好状态(使用事务).这可能是一个或几个存储过程 - 这取决于您的应用程序.
如果要捕获异常,请确保明确指出捕获的异常.你不应该catch (Exception ex)或者catch()- 称为"catch all"异常处理 - 但是具有类似catch (IndexOutOfRangeException ex)(例如)的特定catch语句.
但是,如果您无法处理异常或者您无法清除任何内容,那么您就不应该捕获它.