Thanks, and I agree. I usually use exceptions but for some things (like cache misses) it seems unwieldy. For the example of the cache calls, I check when I've done a cache call like:
$data = $cache->get("key");
if(!$data) { // do the stuff if cache misses }
Though yes, I do need to go through and make sure it's extremely robust, as I did hack it up in an evening :)