学习记录错误。
这是贯穿我整个项目的代码的基本结构。
有人建议我只能将 try 块放置在事件处理程序中。
但是在记录错误时,需要知道是哪种方法导致了错误。
因此,在这种情况下,我是否也应该在 AllIsFine()
和 SaveData()
中保留 try 块。
如果是,那么它应该记录错误还是只记录 throw
。
什么是最佳/标准做法。
DataContext objDataContext = new DataContext();
protected void btn_Click(object sender, EventArgs e)
{
try
{
if(AllIsFine())
{
objDataContext.SaveData();
}
}
catch(Exception ex)
{
//some handling
}
}
private bool AllIsFine()
{
//some code
}
编辑 :当然,我们会尝试看到它永远不会引发异常,但不实用。我是这样看的。部署后,我唯一的访问权限是访问日志并需要获取尽可能多的信息。所以在这种情况下,(以及这种结构),你建议在哪里保留 try catch
最佳答案
这不是真的。
有不同类型的异常,有些你需要处理,有些你应该抛出,有些你应该捕捉,有些你不应该。请阅读 this。
概括:
throw
而不是 throw ex
(它会重置调用堆栈) IndexOutOfRangeException
, NullPointerException
, ArgumentNullException
) 这样做而不是执行操作并捕获异常 关于c# - 我应该把 try catch 放在哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27397620/