【问题标题】:In visual studio 2012 cannot return to code from exception在 Visual Studio 2012 中无法从异常返回代码
【发布时间】:2013-04-29 12:59:25
【问题描述】:

Visual Studio 以前的所有版本都有一个非常有用的功能:如果我在 try...catch 构造的 catch 块中设置断点,那么当发生异常时,我可以将代码的当前位置拖到 try 块中。它允许我查看发生了什么错误。例如:

try
{
    int i=0;
    int j=1/i;
}
catch(Exception ex)
{
    string s="";  //here I may set a break point and then drag a cursor to try block
}

但这在 VS 2012 中是不可能的!我无法返回尝试阻止。我可能错过了选项中的某些内容吗?如果他们取消了此功能,那将是非常可悲的。 解决方案: 我的网站位于应用程序池 ASP.NET V4.0 Integrated 下,其中属性“启用 32 位应用程序”设置为 false。当我将应用程序池更改为另一个并将此属性设置为 True 时,我成功返回尝试块

【问题讨论】:

  • 您确定您的编译器不只是删除不执行任何操作的代码行吗?
  • 刚刚试了一下,没有问题。像魅力一样工作。
  • 你为什么不看看 StackTrace 看看异常来自哪里?
  • Exception 对象包含有关其原因的各种信息。我不明白返回到 try 块(最终只会再次抛出异常)有什么用。
  • 例如,对于某个 i 的值,i 在一个循环中发生了异常。如何在 catch 块中看到 i 的值?

标签: c# exception visual-studio-2012


【解决方案1】:

在 Visual Studio 2010 中也不能这样做,这在 Visual Studio 2012 中并不是什么新鲜事。

编辑:除非它看起来是 Ultimate(启用 Intellitrace)

【讨论】:

  • 我从不知道你可以在 2010 年之前的版本中做到这一点,很有趣。
  • @Kai 从来没有为我工作过,你确定这不是设置或什么?
  • @Bob。我不记得曾经能够做到这一点。我确定你不能在 2010 年,因为上帝知道我已经尝试过 :)
  • @mattytommo 我昨天安装了 VS(得到了 windows 8 超极本!是的!)并没有进行任何更改或安装了插件。
  • @Kai 不错!也许这是 Win 8 的事情?
【解决方案2】:

看起来你要求的功能只有在你使用终极版的 Visual Studio 时才会内置:

Step through a program backwards after an Exception has occurred - Visual Studio

我使用 Ultimate,而 IntelliTrace 使之成为可能:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 2013-05-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    • 2019-07-08
    相关资源
    最近更新 更多