![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| superphp |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 8.3.2013 Репутация: нет Всего: нет |
Не работает пример с исключениями с офиц. сайта ПХП.
Parse error: syntax error, unexpected '{' in D:\server\super-php\test.ru\www\index.php on line 13 |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
Почему половина ответов сводиться к цитированию текста той же страницы, на которую ссылается автор темы?
Это сообщение отредактировал(а) Arantir - 6.4.2013, 16:06 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| superphp |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 8.3.2013 Репутация: нет Всего: нет |
Почему кэтч не ловит у меня исключение?
|
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
Да потому что деление на ноль — это не исключение, а ошибка уровня warning.
Для ясности скажу что, в компилируемых языках ошибки вызываются еще при компиляции, а исключения могут быть вызваны в процессе работы программы. Любое исключение должно быть сначала выброшено, а уж потом отловлено.
Исключения — не неотъемлемое свойство языка, это просто дополнительный функционал для разработчика. Это сообщение отредактировал(а) Arantir - 6.4.2013, 19:31 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
мне казалось, что исключение должно предотвращать сообщение об ошибке
как её заглушить без "собаки" в этом варианте?
|
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
А чем собака не нравится?
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
ну так что? пять лет на протяжении каждого дня здесь активно стыдили новичков за использование собак, но в реальности оказывается без них никуда?
это и есть "правильное" использование исключений? |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
Стыдили, потому что те лепили их куда вздумается, при первой возможности, лишь бы избавится от лишних проверок и назойливых сообщений, что в итоге приводит к невозможности определить причину проблемы, если все "просто не работает". А "мягкая" проверка с выбрасыванием исключения — это уже совершенно другое дело. Как минимум, это укажет на проблемную часть кода, где снять собаку для прочтения ошибки уже дело нехитрое. Ну что поделаешь, если не придумали стандартного "isSerialazable"... Для большинства остальных потенциальных ошибок есть всякие file_exists, empty, != null и прочее, вместе чего, обычно, и лепят собаку новички. Добавлено @ 10:14 А вообще — http://www.php.net/manual/ru/function.set-error-handler.php Это сообщение отредактировал(а) Arantir - 9.4.2013, 10:24 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
да, так вроде всё как надо
остаётся один вопрос: код ошибки "8" указывает только на проблемы с unserialize или на целую группу ошибок (тип ошибки)? где вообще в документации перечень номеров ошибок? |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
А причем тут исключения? Если есть желание По факту http://php.net/manual/en/function.set-error-handler.php Флаг вам в руки и барабан на шею. Для корректной обработки ошибок Соответственно там же можно прочесть о
Добавлено через 8 минут и 46 секунд http://php.net/manual/en/class.serializable.php -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
А? Я вообще-то имел ввиду функцию по аналогии с is_null, is_float, is_array и т.п. И такой функции в классе Serializable нет. -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
то есть восьмёрка указывает только на то, что это E_NOTICE? тогда придётся парсить само сообщение об ошибке, ища слово unserialize |
|||
|
||||
| Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Именно
А зачем? Просто пробрасывать общее исключение (Exception) с сообщением ошибки. Добавлено через 3 минуты и 33 секунды
Какие типы в php не сериализуются? -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
И любят же люди к словам придираться, аж жуть берет... Как будто всего остального написанного просто не существует. Все время речь шла о функции unserialize, и проверка касается ее же, о чем можно догадаться из контекста. В названии просто опечатка в виде отсутствия "un". Не надо же на таких вещах оффтоп начинать... =) -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
А функция unserialize принимает в качестве аргумента строку. Собственно провести валидацию не занимаясь парсингом этой строки невозможно. Поэтому именно false и NOTICE сигнализирует об этом Единственное неудобство заключается в том, что для
вернет тоже false. Т.е. опираться лишь на возвращаемое значение рисковано. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |