Вы можете установить логическую переменную для определения успешности подключения к серверу и проверить его в обработчике исключений, например:
class ServerTester : public Object
{
private bool failing;
private ServerConnection serverConnection;
private Time firstFailure;
public ServerTester(): failing(false)
{
}
public void TestServer() throws ServerException
{
try
{
serverConnection.Connect();
failing = false;
}
catch (ServerException e)
{
if (failing)
{
if (Time::GetTime() - firstFailure > 60)
{
failing = false;
throw e;
}
}
else
{
firstFailure = Time::GetTime();
failing = true;
}
}
}
}
Я не знаю, каковы действительные API времени, так как с тех пор, как я в последний раз использовал Java, прошло много времени. Это будет делать то, что вы просите, но что-то в этом не кажется правильным. Опрос об исключениях кажется мне немного задом наперед, но, поскольку вы имеете дело с сервером, я не могу думать о каком-либо другом способе изо всех сил.