96 / 96 / 21
Регистрация: 25.04.2012
Сообщений: 449
|
|
1 | |
try catch throw для чего нужны?26.02.2013, 15:58. Показов 3468. Ответов 17
Метки нет Все метки)
(
Для чего нужны эти операторы?
Линканите пожалуйста статью, где доходчиво объяснено их применение, в разных вариантах (например я видел throw без остальных конструкций, а в статьях такого описания нету)
0
|
26.02.2013, 15:58 | |
Ответы с готовыми решениями:
17
try, catch, throw |
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
|
|
26.02.2013, 16:05 | 3 |
для обработки исключений.
Добавлено через 16 секунд Не по теме: опоздал.
0
|
Неэпический
![]() |
|
26.02.2013, 16:06 | 4 |
0
|
![]() 15 / 15 / 1
Регистрация: 19.02.2013
Сообщений: 41
|
||||||
26.02.2013, 16:28 | 5 | |||||
Немного убогий пример приведу.
Например программа генерирует случайные числа в диапазоне от 0 до 50. Нем необходимы числа больше 20. Числа, меньше 20 у нас будут исключениями, которые мы так же сможем обработать. Рассмотрим код следующей программы:
Вообще, вот неплохая статья по теме. Добавлено через 1 минуту Тоже опоздал ![]()
1
|
Комп_Оратор)
![]() ![]() |
|
26.02.2013, 16:57 | 6 |
Tiva, в простой ситуации, например при опасности деления на 0, можно самостоятельно проверить знаменатель и обработать ситуацию. Можно выдать сообщение, которое подскажет, ошибку и пригласить ввести новое значение и т.п. В случае когда вызывается библиотечная функция с большим количеством аргументов, причину сбоя предусмотреть труднее, особенно учитывая, что сбой может возникнуть по ряду причин от программы не зависящих: неготовность устройства, не выделение памяти и др. Тогда и сбой возникает в коде к которому нет доступа, например в ядре OS. Однако хорошие функции и классы имеют документацию, в которой описаны исключения, которые они генерируют. В этом случае например, механизм исключений дает возможность проанализировать причину, выдать сообщение, предотвратить крэш.
![]()
0
|
![]() |
|
26.02.2013, 19:24 | 8 |
Можно, если установить соответствующим образом транслятор исключений из структурных в типизированные.
2
|
![]() |
|
26.02.2013, 20:30 | 10 |
Kastaneda, Что возвращать при делении на ноль?
1
|
Комп_Оратор)
![]() ![]() |
||||||
26.02.2013, 21:27 | 12 | |||||
![]()
0
|
![]() |
||||||
26.02.2013, 21:35 | 13 | |||||
Да, про /EHa я уже почитал.
[занудство] все равно в С++ нельзя отловить деление на 0 при помощи try{} catch(), в привиденых примерах это делается средствами определенного компилятора, пр-ва microsoft, который в свою очередь генерит специфичный для винды код, вместо обычного try{} catch() [/занудство] Не по теме: а вот это
0
|
26.02.2013, 21:53 | 14 |
Не по теме: Kastaneda, а что делать, если по стандарту языка деление на ноль - undefined behaviour...
1
|
Комп_Оратор)
![]() ![]() |
|
26.02.2013, 21:57 | 15 |
Да, я пробовал логарифм отрицательного числа, потом что-то изменил, а что-то закоментил, а эту строку забыл.
![]() ![]() Заголовок топика, как я понял, не предполагает дискуссий о иерархиях классов исключений, для каскадной обработки. Разве существенно, конкретно, как обработать тот или иной тип, когда вопрос задан вообще? ![]()
0
|
~ Эврика! ~
![]() 1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
26.02.2013, 23:57 | 16 |
Не по теме: Что делать, что делать... Быть параноиком и не делить на что попало.
0
|
27.02.2013, 08:54 | 17 |
0
|
27.02.2013, 13:25 | 18 |
Не по теме: Дык и я ж о том же. Если человек спрашивает: а зачем try и cath и ни грамма конкретнее, то значит об этом ему и нужно рассказать? А мы ушли в настройки компиляторов (зависимые). :pardon: Теперь ещё о совместимости библиотек говорим. Но ведь по теме это не важно? Помните как пишут в книжках, - "...в предлагаемых примерах, мы намеренно опустили ряд фрагментов, чтобы не затенять суть излагаемого вопроса..." и т.п.? :)
0
|
27.02.2013, 13:25 | |
Помогаю со студенческими работами здесь
18
try-throw-catch
Try,catch,throw,OVERFLOW! Try Throw Catch пример Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Новые блоги и статьи
![]() |
||||
Что нового в C# 14
UnmanagedCoder 10.03.2025
Предстоящая версия C# 14 обещает принести изменения, которые сделают разработку еще более приятной и эффективной.
Что стоит отметить, так это влияние сообщества разработчиков на формирование новых. . .
|
Формулы поворота
Igor3D 10.03.2025
Добрый день
Тема
Эти формулы приводятся во множестве тьюториалов, часто под видом "матрица вращения на плоскости".
x' = x * cos(a) - y * sin(a)
y' = y * cos(a) + x * sin(a)
Как бы Вы их. . .
|
Что нового в .NET 10
UnmanagedCoder 10.03.2025
. NET 10 выходит как релиз с длительной поддержкой (LTS), включающей три года обновлений. В этом обновлении Microsoft сфокусировались на нескольких направлениях: производительность, оптимизация. . .
|
Отложенное высвобождение, RCU и Hazard Pointer в C++26
NullReferenced 09.03.2025
Многопоточное программирование стало важной частью современной разработки. Когда несколько потоков одновременно работают с общими данными, возникает целый ряд проблем, связанных с синхронизацией и. . .
|
Неблокирующийся стек на C++26
NullReferenced 09.03.2025
Традиционные способы синхронизации в многопоточном программировании — мьютексы, семафоры, условные переменные — часто превращаются в узкое место в плане производительности. При этом неблокирующиеся. . .
|
Обработка строк в C++26: Новые возможности string и string_view
NullReferenced 09.03.2025
Новый стандарт C++26 предлагает много улучшений для работы с привычными string и относительно новыми string_view.
string_view - это невладеющая ссылка на последовательность символов, появившаяся в. . .
|
Мой первый аддон для Blender 3D, с помощью нейронки (не зная даже азов пайтона, но это не значит что так и с остальным).
Hrethgir 09.03.2025
Потратил весь день. Пол-дня мне хватило, чтобы понять что с версией с 14B мне не одолеть написание функционального кода, на языке с которым я вообще никак не знаком - пайтон. Версия 22B от другого. . .
|
Einstein@Home сегодня исполняется двадцать лет!
Programma_Boinc 09.03.2025
Einstein@Home сегодня исполняется двадцать лет!
Отправлено 19 февраля 2025 года в 17:20:21 UTC
Я хочу поздравить всех наших волонтеров, разработчиков и ученых из Einstein@Home.
Мы официально. . .
|
Заполнители и расширенный набор символов в C++26
NullReferenced 09.03.2025
C++26 представляет два важных обновления: заполнители и расширенный набор символов. Заполнители (placeholders) решают давнюю проблему лаконичности кода в шаблонных выражениях и лямбда-функциях. Они. . .
|
Контракты в C++26
NullReferenced 09.03.2025
Контракты – это механизм, позволяющий указывать предусловия, постусловия и инварианты для функций в коде. Эта функциональность должна была стать частью C++20, но была исключена на встрече комитета. . .
|