Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Преимущество try {} catch() {}

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): [1] 2 3 »   

> Без описания
teddy
Отправлено: 06 Мая, 2013 - 15:59:20
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Добрый день! Подскажите пожалуйста, в чем преимущество данного перед например, if elseif? Есть ли смысл громоздить код подобной конструкцией? Ведь можно обойтись обычным if elseif

Не вижу разницы... Может вы, подскажете? ) Растерялся
 
 Top
OrmaJever Модератор
Отправлено: 06 Мая, 2013 - 16:14:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




исключение может выйти из любой вложености.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
teddy
Отправлено: 06 Мая, 2013 - 16:16:47
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




OrmaJever пишет:
исключение может выйти из любой вложености.

Ведь исключение опять же проверяется при помощи if, или я ошибаюсь? если да, то в чем? -)
 
 Top
DelphinPRO
Отправлено: 06 Мая, 2013 - 16:28:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




когда-нибудь ты будешь писать относительно большое приложение, и запутаешься в хитросплетениях своих if-ов. тогда ты станешь искать выход. тебе будет нужно более простое, мощное и универсальное решение отлова ошибок. и ты найдешь эксепшены.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
teddy
Отправлено: 06 Мая, 2013 - 16:37:38
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




OrmaJever
DelphinPRO
В целом, идея понятна -) Спасибо вам Подмигивание
 
 Top
OrmaJever Модератор
Отправлено: 06 Мая, 2013 - 16:38:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




PHP:
скопировать код в буфер обмена
  1. function a($a) {
  2.    if($a === null) throw new Exception('variable $a is null');
  3.    /// ...
  4.  
  5. }
  6.  
  7. function b($a, $b, $c) {
  8.    /// ....
  9.    a();
  10. }
  11.  
  12. function c() {
  13.    b(1,4,67);
  14.    /// ...
  15. }
  16. try{
  17.  c();
  18. } catch(Exception $e) {
  19.    echo $e->getMesage();
  20. }

сдейлайте тоже самое с обычными условиями, и покажите что получилось.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
teddy
Отправлено: 06 Мая, 2013 - 16:39:00
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Отдал "Спасибо" DelphinPRO, хотел и OrmaJever, но почему то не добавляется -( какой лимит установлен на повторное "спасибо"? )
 
 Top
caballero
Отправлено: 06 Мая, 2013 - 16:42:37
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Добрый день! Подскажите пожалуйста, в чем преимущество данного перед например, if elseif? Есть ли смысл громоздить код подобной конструкцией? Ведь можно обойтись обычным if elseif

Каким боком исключения относятся к if-else?
Обработка исключений предназначена именно для исключений а не для организации логики работы программы.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
teddy
Отправлено: 06 Мая, 2013 - 16:42:49
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




OrmaJever
теперь понял, всё, спасибо ) это получается как один большой if -) актуально для более объемных проектов как выше написал DelphinPRO, а в "малых" случаях думаю if elseif самое оно )

тему можно шлепнуть...
(Добавление)
caballero
Суть - ловить ошибки... такую же возможность предоставляет нам if elseif
 
 Top
OrmaJever Модератор
Отправлено: 06 Мая, 2013 - 16:45:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




caballero пишет:
Каким боком исключения относятся к if-else?
Обработка исключений предназначена именно для исключений а не для организации логики работы программы.

Да вопрос вполне правельный. На Си без исключений обходятся имено убычными условиями и ретурнами.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
caballero
Отправлено: 06 Мая, 2013 - 16:51:08
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Да вопрос вполне правельный. На Си без исключений обходятся имено убычными условиями и ретурнами.

Не вижу ничего правильного - в обычном С просто нет обработчиков исключений (если не считать макросы которые имитируют это, например в майкрософтовском компиляторе). И ввели try -catch в языки именно потому что операторы контроля выполнения это одно а исключительные ситуации совсем другое.
(Добавление)
Цитата:
Суть - ловить ошибки... такую же возможность предоставляет нам if elseif


не предоставляет.
(Добавление)
Цитата:
это получается как один большой if -)

это у тебя так получается. И в остальных быдлокодеоров, не понимающих элементарных вещей в организации програмного кода.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
teddy
Отправлено: 06 Мая, 2013 - 17:25:12
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




caballero пишет:
это у тебя так получается. И в остальных быдлокодеоров, не понимающих элементарных вещей в организации програмного кода.

Простите, вселенский "Гуру"... Если вы внимательно читали, то я пишу разделе "Вопросы новичков". В связи с тем, что я на стадии обучения и задаю вопросы дабы исключить все "ошибочные мнения", это характеризует меня как человека, который в дальнейшем после завершения обучения не желает быть "быдлокодером", коем меня в данном случае назвать нельзя из за того, что я пока учусь... Вам даже модератор форума выше отписал, которого видимо назначили на эту должность не с проста, видимо он что то понимает в программировании и довольно не мало... Если вы не понимаете таких простых вещей, это не дает вам право бросаться "быдло" фразами в мой адрес. Научитесь нормально разговаривать ибо если я начну хамить, мало не покажется... Как и в прошлый раз я уже говорил, если есть претензии ко мне - обращаемся в личку... Если нет, то не нужно искать повод для "подкорывки" моих тем или сообщений. Надеюсь я ясно выразился...
 
 Top
OrmaJever Модератор
Отправлено: 06 Мая, 2013 - 17:32:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




caballero чё ты такой агрезивный? У тебя абсолютно все ответы в темах как бы с наездом.
caballero пишет:
Не вижу ничего правильного - в обычном С просто нет обработчиков исключений (если не считать макросы которые имитируют это, например в майкрософтовском компиляторе).

Если в этом нет ничего правельного как на Си писать иначе? Макросы не выход ибо это те же условия.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
caballero
Отправлено: 06 Мая, 2013 - 18:17:51
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
что я на стадии обучения и задаю вопросы дабы исключить все "ошибочные мнения", это характеризует меня как человека, который в дальнейшем после завершения обучения не желает быть "быдлокодером", коем меня в данном случае назвать нельзя из за того, что я пока учусь...


вот и читай ответы. Я тебе написал что это разные и никак не связаные вещи а ты " я все понял - try - это большой if ". Или по твоему разработчикам языка нефиг делать и они плодят дублирующий друг друга функционал?


Цитата:
caballero чё ты такой агрезивный? У тебя абсолютно все ответы в темах как бы с наездом.

не все. я потомственный педагог - за километр чую когда человек старается что то выучить но у него не выходит или он даже не пытается понять и разобратся.
В данном случае человек даже не удосужился почитать что такое исключения
и как они используются в программировании. Уверен что даже в педивикии не написано что типа чуваки try - catch это просто if else но только с понтами.

Цитата:
Если в этом нет ничего правельного как на Си писать иначе? Макросы не выход ибо это те же условия.

на С просто нет выбора - там нет обработки исключений и соответственно вопрос выбора там не стоит и логика работы программы организовывается на основании того что есть.. так эе как там нет объектов и передачу структур данных приходится делать через указатели через параметры функций. Типичный пример - работа с виндовым API - веселое занятие.
но если вводят какие то языковые конструкции то их вводят не для того чтобы заменить маленький if большим.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
teddy
Отправлено: 06 Мая, 2013 - 18:51:12
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Ванга детектед Радость

caballero
Да читаю я, читаю... не нервничай. Поверь, подагог из тебя не очень, ну на первый взгляд во всяком случае. Понятное дело что это разные вещи, не принципиально называть всё своими именами, особенно некоторых людей.. Суть главное, чтоб понятной была.. Если ты такой умный, то ответь мне пожалуйста на один вопрос - какую БД лучше всего использовать? и главное почему именно ту, а не эту...

ps.: интересует ответ на данный вопрос только от этого товарисча )

Прошу прощения за флуд, заранее..

(Отредактировано автором: 06 Мая, 2013 - 18:56:29)

 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB