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.