在Visual Studio中调试文件IO错误的最佳方法

时间:2014-02-08 01:26:34

标签: c# visual-studio visual-studio-2012 file-io visual-studio-2013

在Visual Studio中,每当我遇到File IO异常时,我都会看到一个全局未处理的异常,如下所示:

System.IO.FileNotFoundException: The system cannot find the file specified.

但是它没有说明它试图访问的文件,或者任何其他可以帮助我找到代码中调用此文件访问权限的信息。我已经完成了很多在线搜索并尝试查看调用堆栈,但我无法找到一种简单的方法来调试它,除了在任何地方设置断点并尝试进入异常发生的确切行

我是Visual Studio的新手,我想知道人们是否有关于如何更好地调试它的建议。我确信这对经验丰富的Visual Studio用户来说是小菜一碟!

我正在用C#/ C ++编写并使用Visual Studio 2013 Ultimate。

更新的 我的错误,我以为我继承了一些全局未处理的异常代码,但事实证明它是App.g.i.cs中自动生成的代码:

#if DEBUG && !DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
        UnhandledException += (sender, e) =>
        {
            if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();
        };
#endif

2 个答案:

答案 0 :(得分:2)

这些步骤适用于VS 2010 - 如果在新版本中不相同,我希望它非常相似。

在Visual Studio中,请转到:

  • 调试> 例外菜单
  • 展开公共语言运行时例外
  • 展开 System.IO
  • 勾选 Thrown 列中的 System.IO.FileNotFoundException

现在,以调试模式运行您的代码。

Studio会在抛出异常时提醒您。这是它的外观截图。在该窗口中,您可以单击查看详细信息以图形方式浏览异常信息。

这非常适合在您的计算机上进行调试 - 我一直都在使用它。但是,您应该有一个策略(例如,良好的可配置日志记录),以防您需要在其他人的计算机上调试这些类型的信息。

enter image description here

答案 1 :(得分:1)

只需查看堆栈跟踪,就会显示异常来自代码的位置。这应该会给你一个关于它可能是哪个文件的大提示。

尝试显示ex.ToString()以查看整个堆栈跟踪。