try { $config = $file->load($overwrite); } catch (\ConfigException $e) { $config = array(); }which sets the config array to empty. You should not see this exception anywhere. How are you exactly debugging? If you're using an external debugger like dbg, off course it will pick up this exception. But the Core uses Exceptions everywhere, it's the main signalling mechanism, that's what Execeptions are for.
throw new \ConfigException(sprintf('File "%s" does not exist.', $this->file));I am debugging using the debugger with PhpED, so it does pick up the exception. You are correct that it's caught by Config::load() and sets the config array to empty. I've been using Fuel and PhpED for quite a while now, and this is the first time I've seen an Exception flagged that wasn't an actual problem, so I guess I was surprised to see this with every page load. I have the option of setting the debugger to ignore this exception, however that means it will also ignore any cases where there really is a missing file.
It looks like you're new here. If you want to get involved, click one of these buttons!