我有一个客户端服务器应用程序。客户端登录我的服务器上的帐户。问题是我的服务器有时会崩溃,虽然我在try-catch语句中包含了所有类型,但我没有得到任何消息。
我实施的服务器位于:simple threaded tcp server。
有没有人遇到像这样的崩溃?有没有可以找到应用程序错误日志的地方?
我有点绝望,所以任何想法都会很棒。谢谢。
答案 0 :(得分:2)
即使由于多线程操作而将所有函数包装在try-catch块中,应用程序也可能因未处理的异常而崩溃。
try
{
var t = new Thread(()=>
{
Thread.Sleep(5000);
throw new Exception();
});
t.Start();
//t.Join();
}
catch
{
//you can't deal with exception here
//even though you uncomment `t.Join`
//the application will crash even there is a try-catch wrapped
}
答案 1 :(得分:2)
您是否保留了示例代码的这一部分? 在catch ...之后添加一个Console.WriteLine ...
catch
{
//a socket error has occured
break;
}
答案 2 :(得分:1)
如果您在Visual Studio中的调试模式下运行,则可以考虑启用CLR异常以传播到用户控件。我相信它们默认是禁用的,这有时会导致挂起的应用程序没有任何调试器反馈。 This article on MSDN可能会引起人们的兴趣。