It was previously located in Common, which I'm trying to gradually get
rid of. Supported services are ultimately determined by what is in the
guide, so that seems like the best place for it.
Doing `throw <myExceptionVariable>` causes the stack trace information
to be rewritten (we don't want this). Wrapping in a new exception object
like `AggregateException` fixes that but also makes the printed
exception look messier.
Instead, simply return a bool to indicate if `HandleException()`
processed the the exception; if not, then we can rethrow from outside
the method.
Previously, the exception stack trace was omitted to simplify the
console output. However, some situations occurred where an exception was
logged but I couldn't tell where it came from. This made certain rare
bugs impossible to fix.
My philosophy at this point is: If something exceptional happens, we
don't really care about a "clean" console output anymore...