Din kod finns i ett anpassat namnutrymme:
namespace StatCollector;
så denna kod:
catch (Exception $ex)
letar efter en undantagsklass för \StatCollector\Exception , vilket inte är det som kastas:\Exception är.
Eftersom Error och Exception klasser är i roten namnutrymme måste du göra:
catch (\Exception $ex)
och/eller:
catch (\Error $ex)
eller bara:
catch (\Throwable $t)
följ sedan även Bill Karwins råd ovan.