.net - 如何跟踪在代码中捕获抛出异常的位置 - Visual Studio
问题描述
我发现了很多关于如何追踪捕获的异常在哪里被抛出的问题,但我找不到任何关于代码中抛出的异常在哪里被捕获的问题。假设我们使用一个巨大的程序,并且在代码中的某个地方手动抛出了一个异常,但没有在同一个块或从哪里调用它。由于应用程序没有终止,我们可以假设异常在某处被捕获。我们如何在 Visual Studio 中跟踪该异常并查看它在哪里被捕获和处理?
解决方案
您可以使用我的Runtime Flow工具获得一些帮助。
例如,运行以下程序:
class Program
{
static void bar()
{
throw new ApplicationException("");
}
static void foo()
{
bar();
}
static void Main(string[] args)
{
try
{
foo();
}
catch (System.Exception e)
{
Console.WriteLine(e.Message);
}
}
}
生成如下监控结果:
您可以看到异常是如何从 bar 方法引发的,然后是从 foo 方法引发的,而不是在 Main 中引发(捕获)。
推荐阅读
- java - 安卓工作室滑翔
- python - 有没有办法将 x,y 坐标转换为灰度矩阵?(Python)
- android - 如何循环遍历数组中的项目,并且仍然能够与 android studio 中的其他按钮和 UI 元素进行交互
- java - 使用 StAX 和 OkHttp3 解析大型 SOAP 响应时数据泄漏
- javascript - 确保 GraphQL ID 是 Mongo ObjectId
- c# - 无法对图像进行分类 - 检查内部异常以获取更多详细信息
- mysql - 如何查找在 Moodle 中尝试作业的学生总数和学生总数?
- perforce - 是否可以在 perforce 中搁置已删除的文件?
- java - 从 src/main/resources 读取会在命令行上给出 java.nio.file.InvalidPathException (但在 Eclipse 中工作正常)
- javascript - Vue 新手,卡在全局变量上