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() {}
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
Добрый день! Подскажите пожалуйста, в чем преимущество данного перед например, if elseif? Есть ли смысл громоздить код подобной конструкцией? Ведь можно обойтись обычным if elseif
Не вижу разницы... Может вы, подскажете? )
OrmaJever
Отправлено: 06 Мая, 2013 - 16:14:50
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
исключение может выйти из любой вложености.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
teddy
Отправлено: 06 Мая, 2013 - 16:16:47
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
OrmaJever пишет:
исключение может выйти из любой вложености.
Ведь исключение опять же проверяется при помощи if, или я ошибаюсь? если да, то в чем? -)
DelphinPRO
Отправлено: 06 Мая, 2013 - 16:28:01
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
когда-нибудь ты будешь писать относительно большое приложение, и запутаешься в хитросплетениях своих if-ов. тогда ты станешь искать выход. тебе будет нужно более простое, мощное и универсальное решение отлова ошибок. и ты найдешь эксепшены.
----- Чем больше узнаю, тем больше я не знаю.
teddy
Отправлено: 06 Мая, 2013 - 16:37:38
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
OrmaJever DelphinPRO
В целом, идея понятна -) Спасибо вам
OrmaJever
Отправлено: 06 Мая, 2013 - 16:38:05
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
if($a===null) throw new Exception('variable $a is null');
/// ...
}
function b($a,$b,$c){
/// ....
a();
}
function c(){
b(1,4,67);
/// ...
}
try{
c();
} catch(Exception $e){
echo$e->getMesage();
}
сдейлайте тоже самое с обычными условиями, и покажите что получилось.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
teddy
Отправлено: 06 Мая, 2013 - 16:39:00
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
Отдал "Спасибо" DelphinPRO, хотел и OrmaJever, но почему то не добавляется -( какой лимит установлен на повторное "спасибо"? )
caballero
Отправлено: 06 Мая, 2013 - 16:42:37
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
Добрый день! Подскажите пожалуйста, в чем преимущество данного перед например, if elseif? Есть ли смысл громоздить код подобной конструкцией? Ведь можно обойтись обычным if elseif
Каким боком исключения относятся к if-else?
Обработка исключений предназначена именно для исключений а не для организации логики работы программы.
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
OrmaJever
теперь понял, всё, спасибо ) это получается как один большой if -) актуально для более объемных проектов как выше написал DelphinPRO, а в "малых" случаях думаю if elseif самое оно )
тему можно шлепнуть... (Добавление) caballero
Суть - ловить ошибки... такую же возможность предоставляет нам if elseif
OrmaJever
Отправлено: 06 Мая, 2013 - 16:45:57
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
caballero пишет:
Каким боком исключения относятся к if-else?
Обработка исключений предназначена именно для исключений а не для организации логики работы программы.
Да вопрос вполне правельный. На Си без исключений обходятся имено убычными условиями и ретурнами.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
caballero
Отправлено: 06 Мая, 2013 - 16:51:08
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
Да вопрос вполне правельный. На Си без исключений обходятся имено убычными условиями и ретурнами.
Не вижу ничего правильного - в обычном С просто нет обработчиков исключений (если не считать макросы которые имитируют это, например в майкрософтовском компиляторе). И ввели try -catch в языки именно потому что операторы контроля выполнения это одно а исключительные ситуации совсем другое. (Добавление)
Цитата:
Суть - ловить ошибки... такую же возможность предоставляет нам if elseif
не предоставляет. (Добавление)
Цитата:
это получается как один большой if -)
это у тебя так получается. И в остальных быдлокодеоров, не понимающих элементарных вещей в организации програмного кода.
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
caballero пишет:
это у тебя так получается. И в остальных быдлокодеоров, не понимающих элементарных вещей в организации програмного кода.
Простите, вселенский "Гуру"... Если вы внимательно читали, то я пишу разделе "Вопросы новичков". В связи с тем, что я на стадии обучения и задаю вопросы дабы исключить все "ошибочные мнения", это характеризует меня как человека, который в дальнейшем после завершения обучения не желает быть "быдлокодером", коем меня в данном случае назвать нельзя из за того, что я пока учусь... Вам даже модератор форума выше отписал, которого видимо назначили на эту должность не с проста, видимо он что то понимает в программировании и довольно не мало... Если вы не понимаете таких простых вещей, это не дает вам право бросаться "быдло" фразами в мой адрес. Научитесь нормально разговаривать ибо если я начну хамить, мало не покажется... Как и в прошлый раз я уже говорил, если есть претензии ко мне - обращаемся в личку... Если нет, то не нужно искать повод для "подкорывки" моих тем или сообщений. Надеюсь я ясно выразился...
OrmaJever
Отправлено: 06 Мая, 2013 - 17:32:53
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
caballero чё ты такой агрезивный? У тебя абсолютно все ответы в темах как бы с наездом.
caballero пишет:
Не вижу ничего правильного - в обычном С просто нет обработчиков исключений (если не считать макросы которые имитируют это, например в майкрософтовском компиляторе).
Если в этом нет ничего правельного как на Си писать иначе? Макросы не выход ибо это те же условия.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
caballero
Отправлено: 06 Мая, 2013 - 18:17:51
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
что я на стадии обучения и задаю вопросы дабы исключить все "ошибочные мнения", это характеризует меня как человека, который в дальнейшем после завершения обучения не желает быть "быдлокодером", коем меня в данном случае назвать нельзя из за того, что я пока учусь...
вот и читай ответы. Я тебе написал что это разные и никак не связаные вещи а ты " я все понял - try - это большой if ". Или по твоему разработчикам языка нефиг делать и они плодят дублирующий друг друга функционал?
Цитата:
caballero чё ты такой агрезивный? У тебя абсолютно все ответы в темах как бы с наездом.
не все. я потомственный педагог - за километр чую когда человек старается что то выучить но у него не выходит или он даже не пытается понять и разобратся.
В данном случае человек даже не удосужился почитать что такое исключения
и как они используются в программировании. Уверен что даже в педивикии не написано что типа чуваки try - catch это просто if else но только с понтами.
Цитата:
Если в этом нет ничего правельного как на Си писать иначе? Макросы не выход ибо это те же условия.
на С просто нет выбора - там нет обработки исключений и соответственно вопрос выбора там не стоит и логика работы программы организовывается на основании того что есть.. так эе как там нет объектов и передачу структур данных приходится делать через указатели через параметры функций. Типичный пример - работа с виндовым API - веселое занятие.
но если вводят какие то языковые конструкции то их вводят не для того чтобы заменить маленький if большим.
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
Ванга детектед
caballero
Да читаю я, читаю... не нервничай. Поверь, подагог из тебя не очень, ну на первый взгляд во всяком случае. Понятное дело что это разные вещи, не принципиально называть всё своими именами, особенно некоторых людей.. Суть главное, чтоб понятной была.. Если ты такой умный, то ответь мне пожалуйста на один вопрос - какую БД лучше всего использовать? и главное почему именно ту, а не эту...
ps.: интересует ответ на данный вопрос только от этого товарисча )
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.