Это очень субъективно, но я всегда предпочитаю просто игнорировать нефатальные или исправимые ошибки. Поместите их в журналы, если нужно, но если вы знаете, как продолжить - сделайте это.
Обратите внимание, что когда я говорю «роковой», это зависит от самой функции. Скажем, есть функция API, которая получает ID и несколько других параметров. Предположим, что этот идентификатор также может быть угадан из тех других вещей, которые передаются. API-функция должна угадывать его, если это возможно, но функция где-то внутри, которая выполняет всю работу, должна получить ненулевой идентификатор и выдать в противном случае. Поскольку для высокоуровневой функции API она не фатальна, она знает, как ее угадать, но для низкоуровневой функции она фатальна, она должна что-то делать с этим идентификатором и с нулевым значением не может продолжаться.
Конечно, все фатальные ошибки должны быть отмечены.