crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Исключения. За и против
SABROG
  опции профиля:
сообщение 23.9.2009, 11:23
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(BRE @ 23.9.2009, 12:15) *
Ну как показало время, эти проблемы не такие уж и фатальные.


Будем надеяться, что время не покажет, что C++ с Qt - старый век, а чуть медленная Java - новый...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rnd
  опции профиля:
сообщение 23.9.2009, 11:29
Сообщение #12


Студент
*

Группа: Участник
Сообщений: 54
Регистрация: 22.7.2009
Пользователь №: 930

Спасибо сказали: 1 раз(а)




Репутация:   0  


SABROG,
обязательно покажет:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 23.9.2009, 11:31
Сообщение #13


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(SABROG @ 23.9.2009, 12:23) *
Будем надеяться, что время не покажет, что C++ с Qt - старый век, а чуть медленная Java - новый...

На счет java не скажу - не знаю...
А вот что C++ и Qt старый век - никто не говорит.
Переделывать Qt для использования исключений это огромная и наверное не нужная работа. Библиотека сформировалась.
Qt делалась без исключений не по тому что исключения вредны, а по тому что в то время когда она начинала разрабатываться на некоторых платформах, а точнее на некоторых компиляторах для этих платформ, были проблемы с исключениями. Разработчики компиляторов не смогли их победить.
IMHO, если бы Qt начинала разрабатывать сейчас, возможно она бы во всю использовала исключения.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rnd
  опции профиля:
сообщение 23.9.2009, 11:32
Сообщение #14


Студент
*

Группа: Участник
Сообщений: 54
Регистрация: 22.7.2009
Пользователь №: 930

Спасибо сказали: 1 раз(а)




Репутация:   0  


SABROG,
обязательно покажет:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 24.9.2009, 8:33
Сообщение #15


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

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


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


Хорошо что такого ключика нет!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 24.9.2009, 9:15
Сообщение #16


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Я вас понял. Всё, что вы мне хотите сказать "ты просто не умеешь их готовить".
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 24.9.2009, 12:15
Сообщение #17


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Я вижу смысл исключений только в одном, сокращение собственной ручной работы.

Предположим, что существуют 3 функции, которые сильно связаны (допустим их нужно вызывать последовательно, и каждой следующей нужно, что бы все предыдущие корректно отработали)
Тогда пишим код:
if (!funk1()) return;
if (!funk2()) return;
if (!funk3()) return;
в случае с исключениями можно было бы эту писанину сократить:
try{
    funk1();
    funk2();
    funk3();
}exсept(){
    return;
}
компилятор примерно тоже самое сгенерит (в зависимости от возможностей платформы)

Если же нет условия, которое я перечислил в скобках, то можно поступить так:
bool ok = true;
ok &= funk1();
ok &= funk2();
ok &= funk3();
if (!ok)
    return;
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Ответить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 2.12.2024, 14:07