我需要让用户能够向我发送可能的异常消息,我通过将 main 方法包装到 try-catch 中来显示这些消息,但这也迫使我看到该自定义消息而不是 Visual Studio 的异常窗口。
这就是为什么我需要以某种方式使用一些预处理指令来在 VS 中运行未包装的方法并在不包装时运行。
我需要让用户能够向我发送可能的异常消息,我通过将 main 方法包装到 try-catch 中来显示这些消息,但这也迫使我看到该自定义消息而不是 Visual Studio 的异常窗口。
这就是为什么我需要以某种方式使用一些预处理指令来在 VS 中运行未包装的方法并在不包装时运行。
main(){
try {
// your app code here
}
catch (Exception ex){
if(System.Diagnostics.Debugger.IsAttached)
{
throw;
} else {
// your exception handling here.
}
}
正如 Tetsujin no Oni 建议的那样,使用System.Diagnostics.Debugger.IsAttached
如果此布尔属性返回 true,则 Visual Studio IDE(或其他一些调试器!)附加到进程,在这种情况下 - 假设您在 Visual Studio 下运行。
无需使用预处理指令——可以通过在if
语句中检查附加的调试器来完成:
static void Main(string[] args)
{
if (System.Diagnostics.Debugger.IsAttached)
{
/* application code */
}
else
try
{
/* application code */
}
catch (Exception ex)
{
// custom exception handling
}
}