I'm not a fan of the TrySomething
with out parameter pattern, so I would sooner do the following:
while (true) {
try {
possiblyFailingOperation();
break;
}
catch (Exception e) {
reportError();
if (abortRequested())
throw;
}
}