Что есть исключения?
Исключение - это отклонение от нормы. Оно всегда будет. Всего не предусмотреть. Вы можете сделать исключения для Unprocessable, Forbidden, NotFound. 
Написать обработчик, который ловит все необработанные исключения и конвертирует Unprocessable в HTTP 422, Forbidden в HTTP 403, Not Found в HTTP 404, а все остальное в HTTP 500.
О проблемах с сетью клиента уведомлять не надо. Таких технических проблем могут быть сотни и тысячи. Когда они возникнут, ваше приложение итак по очевидным причинам не сможет обработать запрос и упадет с исключением/ошибкой. Вам лишь надо, чтобы исключение/ошибка провалилась в обработчик и превратилась в 500 Internal Server Error. О большем клиенту знать не зачем.
Если при запросе API (что бы это не значило) возможно, что прога "упадёт" (не выдаст ответ с ошибкой, а именно выбросит отлавливаемое исключение), то вы сможете это исключение перехватить.
В случае с PHP, в частности, Fatal error на нижнем уровне не даст перехватываемое исключение, всё гавкнется по-любому.