【问题标题】:Try...Catch...Finally - can "ex" tell you where the exception happened?Try...Catch...Finally - “ex”可以告诉你异常发生在哪里吗?
【发布时间】:2017-07-28 01:06:02
【问题描述】:

如下:

Try
    Some code, which throws an exception
Catch ex as Exception
    Debug.Print(ex.[some property which contains the exception location]
End Try

是否有 ex 变量的任何属性可以告诉您发生异常的行甚至过程?我正在使用 vb.net。

【问题讨论】:

    标签: .net exception try-catch


    【解决方案1】:

    ex.StackTrace 通常包含抛出异常的行号。

    这通常采用以下格式:

    在 c:\Users\username\Documents\Visual Studio 2013\Projects\Project\Namespace\Class.cs:line 178 中的 Project.Class.Method() 处

    【讨论】:

    • 哇,我刚刚意识到这是一个“堆栈跟踪”,并显示了错误过程的完整面包屑路径,然后行。太棒了!
    • 这是一个不错的功能,还有一种更完整的方式来显示整个消息。 C#:Console.WriteLine(ex.ToString); 我认为这个的 VB 实现是相同的减去分号。如果没有,我希望有人能纠正我,因为我通常不是 VB 用户!
    【解决方案2】:

    听起来你需要 ex.StackTrace 或 ex.TargetSite

    https://msdn.microsoft.com/en-us/library/system.exception.stacktrace(v=vs.110).aspx

    https://msdn.microsoft.com/en-us/library/system.exception.targetsite(v=vs.110).aspx

    我自己只在 C# 中使用过这些属性,但这在所有 .NET 中应该是相同的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-17
      • 2018-08-22
      • 2014-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多