Форум → Программирование → PHP для идиотов → PHP и ООП → В чем прелесть Exception?
В чем прелесть Exception?
Страницы: ← Следующая страница →
-
Насколько я понял, если использовать Exception, то необходимо везде где они есть использовать try и catch, но разве это удобно?
В исключительных случаях да, но не везде и всюду же. Нет разве? Докажите чем?
По моему, удобней - если ошибка критическая, делаем die и выводим ошибку. Если не критическая, то логируем куда нибудь. -
Март 14, 2011, 7:35 п.п., спустя 39 минут 1 секунду
По моему, удобней - если ошибка критическая, делаем die и выводим ошибку. Если не критическая, то логируем куда нибудь.
а по моему - пиздец :)Сапожник без сапог -
Март 14, 2011, 7:52 п.п., спустя 17 минут 39 секунд
try - catch ловят исключение из любого уровня вложенности
function a(){
try {
b();
} catch (Exception $e){
print 'exception catched';
}
}
function b(){
c();
}
function c(){
d();
}
function d(){
if file not exists throw new Exception;
}
ошибка в d в целом не критичная, но в контексте a() она означает что нужно свернуться. перепиши этот код без использования исключений. при этом учти, что функции могут возвращать пустые значения (null, false), т.е. их нельзя использовать для сигнализации об ошибке.не всё полезно, что в swap полезло -
Март 14, 2011, 9:26 п.п., спустя 1 час 33 минуты 59 секунд
master, спасибо за обьяснение, сам туйово понимаю суть тру-кетча, а тут чутка понял в чем фишка. Осталось только ещё понять как правильно сделать логирование ошибок для обозначения конкретного места её возникновения + места, откуда ноги растут (то есть что именно могло повлечь ошибку в данном месте). -
Март 14, 2011, 9:42 п.п., спустя 15 минут 46 секунд
-
Март 14, 2011, 9:45 п.п., спустя 2 минуты 46 секунд
master, да хороший пример, спасибо. Вот смотрю на него и понимаю, а когда код пишу, не нахожу таких ситуаций где он бы оправдал себя. Просто нужно больше практики с ООП видимо. -
Март 15, 2011, 3:09 п.п., спустя 17 часов 24 минуты 19 секунд
у мну класс кодинга видео
куча возможных ошибок
завершение по ошибке всегда одно (запись ошибки в БД и удаление лишних файлов)
тру-кэтч работает как нельзя кстати -
Март 15, 2011, 4:02 п.п., спустя 53 минуты 4 секунды
Просто нужно больше практики с ООП видимо
нужно больше практики просто… -
Июль 16, 2011, 4:33 п.п., спустя 122 дня 23 часа 30 минут
die это конечно жесть в web-приложении.Осталось только ещё понять как правильно сделать логирование ошибок для обозначения конкретного места её возникновения + места, откуда ноги растут
используйте debug_backtrace -
Июль 16, 2011, 4:37 п.п., спустя 4 минуты 5 секунд
Technic, Смени аву, эта ава совершенно другого человека. А то я подумал что SA уже в программисты записалсо ) -
Июль 16, 2011, 9:57 п.п., спустя 5 часов 20 минут 8 секунд
исключения надо правильно готовить.
исколючение - это сигнал о НЕШТАТНОЙ ситуации. например если ваша БД недоступна…
не стоит их использовать просто вместо break или return. это "дорогая" операция
можно объявить глобальный обработчик неперехваченных исключений – для их логирования.
можно и нужно объявлять свои классы исключений и в catch указывать обработку конкретных типов.
свой кастомный тип может нести дополнительную инфу, а не только строку с сообщением
ну и как правильно master написал, они помогают упростить логику обработки ошибки при большой вложенности вызовов
в то же время многие разработчики не переносят исключения на дух и имеют свои аргументы. exceptions are badιιlllιlllι унц-унц -
Июль 16, 2011, 11:44 п.п., спустя 1 час 47 минут 26 секунд
exceptions are bad
стопудово DIE is better xDDСапожник без сапог -
Июль 20, 2011, 12:48 п.п., спустя 3 дня 13 часов 3 минуты
Technic, Смени аву, эта ава совершенно другого человека
да, это это ава совершенно другого человека. -
-
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!