如何在不将变量赋值给异常的情况下查看调试器中的异常细节?

时间:2013-04-11 07:50:11

标签: c# visual-studio exception

我希望在Visual Studio调试器中看到异常细节而不将变量赋值给异常。目前我必须写这样的东西:

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

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

更新:我知道如何抑制VS错误'变量永远不会被使用',问题是在没有这个变量的情况下看到内部异常。 @VladimirFrolov的$ exception变量或@MarcGravell的异常助手是一个答案。

7 个答案:

答案 0 :(得分:78)

您可以在“本地列表”列表中查看例外情况,也可以在“观察列表”中使用$exception

try
{
    // some code
}
catch (SecurityException)
{ // place breakpoint at this line
}

答案 1 :(得分:9)

你不需要做任何事情:只需在catch内放置一个断点(或在catch上放置一个断点并进入块中),你应该看到一个看到异常助手的邀请。这适用于裸catch或类型特定的catch(SecurityException)块:

enter image description here

为您提供一切:

enter image description here

答案 2 :(得分:2)

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

Debug =>例外=>检查“公共语言运行时异常”

就是这样。希望它有所帮助。

答案 3 :(得分: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
    }

答案 4 :(得分:1)

写一下

 catch
{//set breakpoint here
}

答案 5 :(得分:0)

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

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

或使用System.Diagnostics.Debug.WriteLine()或启用跟踪或调试以使用trace listener

答案 6 :(得分:0)

在遇到异常时,您可以随时查看监视窗口并添加变量: $ exception 。 这样,您就可以使用所有Exception元数据。