$old_handler = set_error_handler(function ($level, $message, $file = '', $line = 0) {
throw new ErrorException($message, 0, $level, $file, $line);
});
try {
fopen
...
fclose
catch(\Throwable $e) {
// ой, всё...
}
я считаю что cat не ограничен memory_limit PHP.
не надо слушать тех, кто не понимает задачу в целом, а видит только маленькую часть.
Потому что сказать "надо отслеживать граничные случаи" - это не сказать ничего. Рекомендация из серии "ведите здоровый образ жизни".
Был бы какой-то реальный код со 100500 проверками - было бы о чем говорить. Вполне возможно, я бы даже принял вашу точку зрения. А так - да, поговорили о воображаемом коде, да разошлись.