правильно так
try {
$tpl = file_get_contents("tpls/tpl-{$name}.tpl");
echo ('file opened');
} catch (Exception $e) {
// обрабатываем исключение, например, пишем в лог $e->getMessage();
// если ошибка за пределы блока не должна выходить - то ничего не пишем,
// если ошибку нужно обработать в верхнем уровне, то бросаем исключение принудительно:
// throw $e;
}
в нормальных языках любые ошибки бросают исключения, но в пыхе есть три способа выбрасывания ошибок. или два
основной, олдскул тксзть - error_handler, он задаётся функцией set_error_handler
поэтому пишешь отдельно в начале скрипта
function error_handler($code, $message, $file, $line) {
throw new Exception($code, $message, $file, $line);
}
set_error_handler('error_handler');
ну или смотри последний коммент тут
http://www.php.net/manual/ru/ref.errorfunc.php#e-errorтеперь обычная ошибка выбросит исключение. проверить просто - подели где-нибудь в коде на ноль
в общем, после такой комбинации у тебя в случае ошибки чтения из файла должно выбрасываться и ловиться исключение
не всё полезно, что в swap полезло