c# - 像这样处理特定异常是否可以

标签 c# asp.net exception

我在很多地方都看到过这样的代码,这样做有什么好处..或者这是一种错误的做法..

try
{
    ......
}   
catch (NullReferenceException ex)
{
    Data.LogError(ex, "Exception occourred while ...");
}
catch (IndexOutOfRangeException ex)
{
    Data.LogError(ex, "Exception occourred while ...");
}
catch (Exception ex)
{
    Data.LogError(ex, "Exception occourred while ...");
}

特定异常处理的上下文中。

最佳答案

如果您打算在 catch block 中以不同的方式处理异常(即,由于抛出异常而执行不同的操作),这会有好处。

否则你可以删除更具体的异常处理程序并只使用最通用的:

catch(Exception ex)

注意:如果异常纯粹用于日志记录,那么有时重新抛出异常以将其冒泡到应用程序的其余部分可能很有用:

try{

}
catch(Exception ex){
   // Log exception here
   throw;
}

关于c# - 像这样处理特定异常是否可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16833098/

相关文章:

C# FTP上传和下载

c# - 位图图像的“每样本位数”、“每像素样本数”和“每像素字节数”之间有什么区别?

c# - 使用 OpenXML SDK 2.0 插入新行和移动现有行

JavaMail 一段时间后停止发送邮件

java - Java 并行流中的异常传播

Android开发-Unknown Host异常问题

c# - 为什么它说 'int32 array index expected' ?

c# - 从 switch block 中跳出 foreach 循环

asp.net - 为什么类型推断 (var) 不能与 ASP.NET GridView.Rows 属性一起使用?

c# - 获取内网认证用户