Признаюсь, я нуб по части работы с исключениями. Раньше, по большей части, обходился без них, а теперь хочу разобраться.
Зачем в PHP два базовых класса \Exception и \ErrorException?
Почему Exception перехватывает Unknown Property Exception, но не ловит, скажем, деление на 0?? А в ErrorException с точности наоборот?
try {
$myClass->myUnknowProperty;
//10/0; //error!!!1
// throw new \ErrorException ("tralala"); // error!!!
} catch (\Exception $e) {
log("warning UnknowProperty");
}
try {
//$myClass->myUnknowProperty; //error!!
10/0;
//throw new \Exception("tralala"); // error!!
} catch (\ErrorException $e) {
log("warning division by zero");
}
Моя цель, в случае ошибки залогировать ее и показать пользователю страницу, пусть и с некоторыми багами, но не кидать его на server error.
Как перехватываете исключения вы?