异常处理——显示发生错误的行号? [复制]

2023-11-22

可能的重复:
在异常处理中显示行号

有人可以告诉我如何获取发生错误的代码的行号并将其显示到控制台吗?

其他信息(例如文件名或方法名称)将非常方便。


如果您需要文件和行号,则无需解析 StackTrace 字符串。您可以使用 System.Diagnostics.StackTrace 从异常创建堆栈跟踪,这样您就可以枚举堆栈帧并获取引发异常的文件名、行号和列。这是一个关于如何执行此操作的快速而简单的示例。不包括错误检查。为此,PDB 需要与调试符号一起存在,默认情况下是使用调试构建创建的。

using System;
using System.Diagnostics;
namespace ConsoleApplication1
{
  class Program
  {    
    static void Main(string[] args)
    {      
      try
      {
        TestFunction();
      }
      catch (Exception ex)
      {
        StackTrace st = new StackTrace(ex, true);
        StackFrame[] frames = st.GetFrames();

        // Iterate over the frames extracting the information you need
        foreach (StackFrame frame in frames)
        {
          Console.WriteLine("{0}:{1}({2},{3})", frame.GetFileName(), frame.GetMethod().Name, frame.GetFileLineNumber(), frame.GetFileColumnNumber());
        }
      }

      Console.ReadKey();
    }

    static void TestFunction()
    {      
      throw new InvalidOperationException();
    }
  }
}

上面代码的输出如下所示



D:\Source\NGTests\ConsoleApplication1\Program.cs:TestFunction(30,7)
D:\Source\NGTests\ConsoleApplication1\Program.cs:Main(11,9)
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

异常处理——显示发生错误的行号? [复制] 的相关文章

随机推荐

  • PHP7.1 json_encode() 浮点问题

    这不是一个问题 因为它更多的是一个意识 我更新了一个使用的应用程序json encode 到 PHP7 1 1 我发现浮点数有时会扩展到 17 位数字的问题 根据文档 PHP 7 1 x开始使用serialize precision而不是编
  • Android,如何在旋转设备时不破坏活动?

    我有一个仅在纵向模式下工作的应用程序 并且我已在清单文件中将每个活动的方向更改为纵向 但是当我旋转设备时 活动会再次重新创建 如何才能不破坏活动呢 For API 12 及以下 add android configChanges orien
  • 如何将大型 AngularJS 项目拆分为模块

    我来自 Backbone 和 JavascriptMVC 的世界 但我真的很想切换到 AngularJS 到目前为止 我有一个大问题阻止我转变 我创建单页应用程序 假设它包含一个选项卡模块 一个文件上传模块和一个文件列表模块 我在 Back
  • 当前的 C++ 编译器是否曾发出“rep movsb/w/d”?

    This question让我想知道 当前的现代编译器是否曾经发出过REP MOVSB W D操作说明 基于此讨论 似乎使用REP MOVSB W D对当前的 CPU 可能会有好处 但无论我如何尝试 我都无法使任何当前的编译器 GCC 8
  • Android 模拟器:缺少右侧面板

    似乎在最新版本的 Android studio 中 谷歌为模拟器提供了新的皮肤 我注意到它们是模拟器右侧的侧面板 就我而言 这个面板丢失了 我已经搜索了几个小时但没有结果 谁能告诉我如何在模拟器中启用此面板 PS 我使用的是Ubuntu 1
  • 对类型“Assembly”的引用声称它是在“System.Runtime”中定义的,但找不到

    自从更新到 VS2017 15 7 1 以来 我的 Xamarin PCL 项目在 UWP App xaml cs 文件中显示以下错误 错误CS7069对类型 Assembly 的引用声称它是在 System Runtime 中定义的 但找
  • 显示 pdf 时是否可以删除 UIwebview 中的 [“第 1 页,共 20 页”视图]?

    经过多次谷歌搜索后我无法找到解决方案 我有一个 UIWebView 里面有一个 PDF 我不想要这样的视图 第 1 页 共 20 页 查看 PDF 文件时左上角的小视图 可以删除这个吗 斯威夫特 3 和WKWebView 我得到了所有的子视
  • ios 会在特定时间后终止在后台运行的应用程序吗?

    我在应用程序中使用核心位置框架 并在 UIBackgroundMode 或必需背景模式 在 Xcode 4 2 中 中设置位置字符串 以便从中获取更新的位置didUpdateToLocation当应用程序在后台运行时的方法 并通过点击内部的
  • 使用 webpack 5 将 SVG 导入为 React 组件

    我想在我的应用程序中使用 SVG 作为 React 组件 我正在使用 react 17 0 2 Webpack 5 57 1 svgr webpack 6 2 1 我按照 svgr 文档中的步骤在 webpack config 文件中添加
  • .NET Core 通过命令行传递配置部分

    在 appsettings json 文件中我有 DataSource ConnectionString mongodb localhost 27017 DatabaseName Root CollectionName ApiLog 在 P
  • include_once,php中的相对路径

    我有 3 个文件 home failed attempt login 文件 home 和 failed attempt 均指登录文件 烦人的是他们抛出一个错误 说登录文件不存在 如果我这样做 家会抛出异常 但尝试失败 include onc
  • 如何在 Windows 下使用 Unicode 字符显示消息/警告/错误?

    我有一条包含 Unicode 字符的消息 或警告或错误 该字符串有UTF 8编码 x lt u20AC ub124 a euro symbol and Hangul ne 1 Encoding x 1 UTF 8 在 Linux 下 如果区
  • 图像每 30 秒更改一次 - 循环

    我想在 30 秒后更改图像 我使用的 JavaScript 看起来像这样 var images new Array images 0 image1 jpg images 1 image2 jpg images 2 image3 jpg se
  • re.sub 错误“预期字符串或类似字节的对象”

    我已阅读有关此错误的多篇文章 但我仍然无法弄清楚 当我尝试循环遍历我的函数时 def fix Plan location letters only re sub a zA Z Search for all non letters Repla
  • 将 Microsoft Access 作为计划任务运行

    我正在寻求有关如何安排数据库 accdb 自动更新的评论 因为我对我设置的流程不太满意 目前 其工作原理如下 任务计划程序调用 bat bat 调用 vbs vbs 打开数据库并调用宏 宏调用函数 VBA级别 该函数调用更新子例程 我认为步
  • JComboBox 无法在 JTable TableHeader 中展开

    我已经阅读了 JTable JComboBox 对此类其他问题的大部分答复 但尚未找到解决我的问题的方法 我创建了一个包含 JComboBox TableHeader 元素的表 任何 JComboBox 元素都不会打开以显示项目列表 如何获
  • Android开发中MonoDroid VS Java?

    我非常了解 C 并且喜欢将 Visual Studio 作为 IDE 但现在我想开始为 android 开发 我发现关于单一机器人并想问一下它是否有任何缺点可以使 Java 更受欢迎 或者我应该卸载 Eclipse 并直接进入 MonoDr
  • Firebase错误:请求的数据超出了单个请求可以访问的最大大小

    我需要export my Firabase数据库为JSON通过 Firebase 控制台 但是当我这样做时 我在 JSON 文件中收到以下消息 请求的数据超出了可以访问的最大大小 单一请求 我怎样才能解决这个问题 额外细节 这是我在控制台中
  • 无法连接到 Google 云连接服务器

    我尝试在我的服务器和 Google Cloud 连接服务器 CCS 之间打开 XMPP 连接 但它不起作用 我正在使用 PHP 进行编程并使用 JAXL 库 这是我的代码
  • 异常处理——显示发生错误的行号? [复制]

    这个问题在这里已经有答案了 可能的重复 在异常处理中显示行号 有人可以告诉我如何获取发生错误的代码的行号并将其显示到控制台吗 其他信息 例如文件名或方法名称 将非常方便 如果您需要文件和行号 则无需解析 StackTrace 字符串 您可以