+ // This catches:
+ // * Exception objects that were explicitly thrown but not
+ // caught anywhere in the application. This is rare given those
+ // would normally be caught at a high-level like MediaWiki::run (index.php),
+ // api.php, or ResourceLoader::respond (load.php). These high-level
+ // catch clauses would then call MWExceptionHandler::logException
+ // or MWExceptionHandler::handleException.
+ // If they are not caught, then they are handled here.
+ // * Error objects (on PHP 7+), for issues that would historically
+ // cause fatal errors but may now be caught as Throwable (not Exception).
+ // Same as previous case, but more common to bubble to here instead of
+ // caught locally because they tend to not be safe to recover from.
+ // (e.g. argument TypeErorr, devision by zero, etc.)