@tcql It's programmers like you who made exception-throwing popular 😜 ;) ;) but seriously, being consistent about it is hard! I wrote a structured logging framework which helped me, because it let me log issues as return statements:
return $log->err('no config', $errno, $filename);
(Returns the tuple ("ERROR", "no config", $errno, $filename) after logging it)