【问题标题】:C# use reflection to capture exception throwC#使用反射捕获异常抛出
【发布时间】:2015-11-23 22:11:18
【问题描述】:

有没有办法在 catch 块中使用反射或其他方法来获取已抛出的异常类型以及堆栈跟踪,而无需附加 catch(Exception ex) 参数?

我想要一种方法来捕获所有异常并减轻代码分析中发现的过于广泛的捕获。

catch
{
     //Include Reflection here to get error thrown information

     divRecordNotFound.Visible = true;
     labelRecordNotFound.Text = string.Format(System.Globalization.CultureInfo.CurrentCulture, "{0}{1}", ValidNS.Properties.Resoures.ErrorValue); 
     divRecordFound.Visible = false;
}

【问题讨论】:

  • I want a way catch all exceptions and mitigate the code analysis finding for overly broad catch - 所以你想要一个广泛的捕获而不需要代码分析工具告诉你它不好?即使如果这是可能的,你也不会从中获得任何好处。只需输入catch (Exception ex) 并在您的代码分析工具中添加一条规则,以忽略这个特别广泛的问题。你不应该为了让分析工具满意而破坏你的代码。
  • 我无法想象捕获异常和反射之间的有用联系。您不应该使用繁琐的解决方案绕过代码分析中的警告。
  • 除非代码评估工具有问题,否则仍应将其报告为过于广泛的捕获。
  • Rob - 您的评论就是答案。 “你不应该为了让分析工具满意而破坏你的代码。”谢谢。

标签: c# asp.net error-handling


【解决方案1】:

通过执行catch (Exception ex),您还可以捕获源自Exception 的所有异常。 如果你想要它的类型,你可以打电话给ex.GetType()。 希望它有所帮助;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-09
    • 2013-06-24
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    • 2016-02-17
    • 2020-11-14
    • 2018-03-09
    相关资源
    最近更新 更多