【问题标题】:In ASP, C#, and VB.Net how to retrieve current line number在 ASP、C# 和 VB.Net 中如何检索当前行号
【发布时间】:2011-10-20 00:11:18
【问题描述】:

ASP、C#、VB.NET 是否有办法检索代码中的哪一行作为其处理命令?

例子

1 <%
2 response.write("Your on line " & retreiveCurrentLineNumber)
3 %>

输出:您的第 2 行

【问题讨论】:

    标签: c# asp.net vb.net vbscript asp-classic


    【解决方案1】:

    你可以这样做:

    var line = new StackFrame(0, true).GetFileLineNumber();
    

    注意这里有几个注意事项。

    1. 您需要确保源文件和 PDB 是可访问的。
    2. 这将为您提供您所在的方法的当前行,而不是您所在的位置。
    3. Jit 可能会执行导致错误信息的优化,例如内联方法。

    对于 VB.NET 也是一样的:

    Dim line As Integer = New StackFrame(0, True).GetFileLineNumber()
    

    就 Classic ASP 而言 - 我认为这是不可能的。

    【讨论】:

    • @RetroCoder 我不相信这是可能的。
    【解决方案2】:

    虽然 vcsjones 的答案可能正是您正在寻找的,但出于调试/故障排除 VB.NET 的目的,您可能需要查看 Err 对象的 Erl 属性。它返回一个整数,表示最后执行的语句的行号 - 行号表示数字标签,而不是源文件的物理行号。

    在关键点添加行号有助于解决意外异常,并且不需要源文件和 PDB 即可使 Erl 工作。

    【讨论】:

      猜你喜欢
      • 2014-01-19
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 2018-11-14
      • 1970-01-01
      • 2013-05-15
      • 1970-01-01
      • 2011-02-02
      相关资源
      最近更新 更多