Пыха тебя найдет

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 25 Май, 2012, 12:44:03

Страниц: [1] 2
Печать
Автор Тема: В чем прелесть Exception?  (Прочитано 1006 раз)
0 Пользователей и 1 Гость смотрят эту тему.
andipas    ↓ 
14 Март, 2011, 06:56:01
НЕ ХУЕТА! ХУЕТА!


Карма: 2
Сообщений: 173
Сила слова: 1.16

Насколько я понял, если использовать Exception, то необходимо везде где они есть использовать try и catch, но разве это удобно?
 
В исключительных случаях да, но не везде и всюду же. Нет разве? Докажите чем?
 
По моему, удобней - если ошибка критическая, делаем die и выводим ошибку. Если не критическая, то логируем куда нибудь.
Записан
phpdude    ↓ 
14 Март, 2011, 07:35:02 , спустя 39 минут 1 секунду
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: д-о-х-у-я!
Сила слова: 1.66

По моему, удобней - если ошибка критическая, делаем die и выводим ошибку. Если не критическая, то логируем куда нибудь.
а по моему - пиздец :)
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
master    ↓ 
14 Март, 2011, 07:52:41 , спустя 17 минут 39 секунд
НЕ ХУЕТА! ХУЕТА!

Квадратов сколько видишь ты?
Группа: Джедаи

Карма: 44
Сообщений: 2080
Сила слова: 2.12

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), т.е. их нельзя использовать для сигнализации об ошибке.
« Последнее редактирование: 14 Март, 2011, 07:52:41 от master » Записан

Givi    ↓ 
14 Март, 2011, 09:26:40 , спустя 1 час 33 минуты 59 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

master, спасибо за обьяснение, сам туйово понимаю суть тру-кетча, а тут чутка понял в чем фишка. Осталось только ещё понять как правильно сделать логирование ошибок для обозначения конкретного места её возникновения + места, откуда ноги растут (то есть что именно могло повлечь ошибку в данном месте).
Записан

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
Timur    ↓ 
14 Март, 2011, 09:42:26 , спустя 15 минут 46 секунд
НЕ ХУЕТА! ХУЕТА!

NullPointerException
Группа: в ухо

Карма: 56
Сообщений: 1009
Сила слова: 5.55

http://www.php.net/manual/en/exception.gettrace.php
Записан
andipas    ↓ 
14 Март, 2011, 09:45:12 , спустя 2 минуты 46 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: 2
Сообщений: 173
Сила слова: 1.16

master, да хороший пример, спасибо. Вот смотрю на него и понимаю, а когда код пишу, не нахожу таких ситуаций где он бы оправдал себя. Просто нужно больше практики с ООП видимо.
Записан
Faster    ↓ 
15 Март, 2011, 03:09:31 , спустя 17 часов 24 минуты 19 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: 10
Сообщений: 954
Сила слова: 1.05

у мну класс кодинга видео
куча возможных ошибок
завершение по ошибке всегда одно (запись ошибки в БД и удаление лишних файлов)
тру-кэтч работает как нельзя кстати
Записан

воспитываю дочь. С домами и деревьями  - не приставать.
kostyl    ↓ 
15 Март, 2011, 04:02:35 , спустя 53 минуты 4 секунды
НЕ ХУЕТА! ХУЕТА!

занедельный антипаттерн
Группа: Джедаи

Карма: 60
Сообщений: 3522
Сила слова: 1.7

Просто нужно больше практики с ООП видимо
нужно больше практики просто...
Записан

качество жизни обратно пропорционально количеству лени
Technic    ↓ 
16 Июль, 2011, 04:33:18 , спустя 122 дня 23 часа 30 минут 43 секунды
НЕ ХУЕТА! ХУЕТА!


Карма: 0
Сообщений: 1
Сила слова: 0

die это конечно жесть в web-приложении.
 
Осталось только ещё понять как правильно сделать логирование ошибок для обозначения конкретного места её возникновения + места, откуда ноги растут

используйте debug_backtrace
Записан
mario    ↓ 
16 Июль, 2011, 04:37:23 , спустя 4 минуты 5 секунд
НЕ ХУЕТА! ХУЕТА!

wazzup
Группа: Джедаи

Карма: 67
Сообщений: 6162
Сила слова: 1.09

Technic,  Смени аву, эта ава совершенно другого человека. А то я подумал что SA уже в программисты записалсо )
Записан

с ув. mario.
Контакты
artoodetoo    ↓ 
16 Июль, 2011, 09:57:31 , спустя 5 часов 20 минут 8 секунд
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

исключения надо правильно готовить.
 
исколючение - это сигнал о НЕШТАТНОЙ ситуации. например если ваша БД недоступна...
не стоит их использовать просто вместо break или return. это "дорогая" операция
 
можно объявить глобальный обработчик неперехваченных исключений -- для их логирования.
 
можно и нужно объявлять свои классы исключений и в catch указывать обработку конкретных типов.
свой кастомный тип может нести дополнительную инфу, а не только строку с сообщением
 
ну и как правильно master написал, они помогают упростить логику обработки ошибки при большой вложенности вызовов
 
в то же время многие разработчики не переносят исключения на дух и имеют свои аргументы. exceptions are bad
Записан
phpdude    ↓ 
16 Июль, 2011, 11:44:57 , спустя 1 час 47 минут 26 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: 20790
Сила слова: 1.66

exceptions are bad
стопудово DIE is better xDD
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
SA    ↓ 
20 Июль, 2011, 12:48:19 , спустя 3 дня 13 часов 3 минуты 22 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 1
Сообщений: 30
Сила слова: 3.33

Technic,  Смени аву, эта ава совершенно другого человека

да, это это ава совершенно другого человека.
Записан

Разработка хороших сайтов: s.a.design
vasa_c    ↓ 
20 Июль, 2011, 12:59:55 , спустя 11 минут 36 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

SA, меняй аву, Техник первым был в этой теме.
Записан

fgets    ↓ 
20 Июль, 2011, 10:43:55 , спустя 9 часов 44 минуты
НЕ ХУЕТА! ХУЕТА!


Карма: -1
Сообщений: 1119
Сила слова: -0.09

На try-catch-finalize задрочены шарпокодеры!
Записан

эй детка не ссы в бассейн

Если в бочку с говном положить ложку меда — получится бочка говна. Если в бочку с медом положить ложку говна, не обольщайтесь ...
Страниц: [1] 2
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd, Sinkler, mario