0

我需要让用户能够向我发送可能的异常消息,我通过将 main 方法包装到 try-catch 中来显示这些消息,但这也迫使我看到该自定义消息而不是 Visual Studio 的异常窗口。

这就是为什么我需要以某种方式使用一些预处理指令来在 VS 中运行未包装的方法并在不包装时运行。

4

3 回答 3

2
main(){
try {
// your app code here
} 
catch (Exception ex){
if(System.Diagnostics.Debugger.IsAttached)
{
    throw;
  } else {
  // your exception handling here.
  }
}
于 2012-10-10T22:19:45.177 回答
0

正如 Tetsujin no Oni 建议的那样,使用System.Diagnostics.Debugger.IsAttached 如果此布尔属性返回 true,则 Visual Studio IDE(或其他一些调试器!)附加到进程,在这种情况下 - 假设您在 Visual Studio 下运行。

于 2012-10-10T22:17:42.130 回答
0

无需使用预处理指令——可以通过在if语句中检查附加的调试器来完成:

static void Main(string[] args)
{
    if (System.Diagnostics.Debugger.IsAttached)
    {
        /* application code */
    }
    else
        try
        {
            /* application code */
        }
        catch (Exception ex)
        {                
            // custom exception handling
        }
}
于 2012-10-11T12:17:27.613 回答