В PHP есть два типа ошибок. Есть исключения, и есть ошибки.
try..catch
будет обрабатывать исключения, но не будет обрабатывать ошибки.
Чтобы перехватывать ошибки PHP, вам нужно использовать функцию set_error_handler()
.
Один из способов упростить ситуацию - заставить set_error_handler()
выдать исключение при возникновении ошибки. Вам нужно будет действовать осторожно, если вы сделаете это, поскольку это может привести к всевозможным проблемам, но это будет способ заставить try..catch
работать со всеми ошибками PHP.