57

我想在 Visual Studio 调试器中查看异常详细信息,而无需将变量分配给异常。目前我必须写这样的东西:

try 
{
    //some code
}
catch (SecurityException ex)
{
   //some code or ever no any code 
}

Visual Studio 抛出一个错误,表明从未使用过 ex 变量,但我需要这个变量来在调试时查看异常详细信息。

更新:我知道如何抑制 VS 错误“从不使用变量”,问题是在没有这个变量的情况下在 watch 中看到异常。


@VladimirFrolov 的 $exception 变量或@MarcGravell 的异常助手是一个答案。

4

7 回答 7

107

您可以在 Locals 列表中查看您的例外或$exception在 Watch 列表中使用:

try
{
    // some code
}
catch (SecurityException)
{ // place breakpoint at this line
}
于 2013-04-11T07:52:11.753 回答
9

您无需执行任何操作:只需在块内catch(或在 a 上catch并单步执行一次)放置一个断点,您应该会看到查看异常帮助程序的邀请。这适用于裸块catch或特定类型的catch(SecurityException)块:

在此处输入图像描述

这给了你一切:

在此处输入图像描述

于 2013-04-11T08:04:59.947 回答
6

在您遇到异常的任何时候,您都可以检查监视窗口并添加变量:$exception。这将使您可以使用所有异常元数据。

于 2019-06-12T22:51:33.707 回答
4

您可以使用 Visual Studio 中的功能。

调试 => 异常 => 检查“公共语言运行时异常”

而已。希望能帮助到你。

于 2013-04-11T07:53:11.897 回答
2

利用

catch (SecurityException /*without variable*/)
{/*break Point*/
   //some code or ever no any code 
}

或者

catch /*without parameter*/
{/*break Point*/
   //some code or ever no any code 
}

但我认为这就是你的意思

catch (SecurityException ex)
    {
       MessageBox.Show(ex.ToString()); //for Winforms
       Console.WriteLine(ex); //for console
    }
于 2013-04-11T07:55:41.983 回答
1

写吧

 catch
{//set breakpoint here
}
于 2013-04-11T07:52:58.323 回答
0

为避免在 catch 语句中出现警告:“变量 'ex' 已声明但从未使用”,请执行以下操作:

 try
 {
 }
 catch (Exception)
 {
   // set break point 
 }

或使用 System.Diagnostics.Debug.WriteLine()或启用跟踪或调试以使用跟踪侦听器。

于 2013-04-11T07:53:25.650 回答