我有一个Delphi 6客户机-服务器应用程序,其中的服务器本质上是:
initialize;
repeat
try
getInput;
putOutput;
except
on e: exception do writeln(e.message);
end
until false;
在开发期间,but (例如指针异常)很少见,但是服务器可以继续运行。既然在生产中,服务器似乎已经调试好了,因此很容易删除try...except,因为它给服务器增加了大量的执行开销,但是如果出现异常,它就会停止服务器。
一种解决方案是让父进程简单地重新启动整个服务器,在重新启动
服务器错误导致HTTP 500-使用一般错误消息(“服务器遇到错误...”)响应客户端。有没有办法截取此消息并编写自定义消息?
我希望有一种方法可以唯一地从客户端识别服务器错误。例如,如果我可以生成一个GUID,在发生服务器错误时在服务器端记录该GUID,然后将该ID发送到客户端,这将使以后随时在日志中搜索该特定异常变得容易。
我确实意识到服务器错误是由代码中的异常生成的,所以我正在寻找应用引擎API中的某种捕获所有异常钩子。当然,如果这样的钩子存在,并且在这里执行的代码生成第二个异常,那么它将不得不再次默认为一般的500-error。
我正在使用Java API for GAE