Ответ 1
В терминологии С# повышение используется в контексте событий, а бросание используется в контексте исключений.
Лично я думаю, что сочетание throw/catch
более красивое, чем raise/catch
.
Я знаю, что это, вероятно, не имеет большого значения, но я хотел бы знать, что правильно.
Если часть кода содержит некоторую версию throw new SomeKindOfException()
. Считаем ли мы, что этот фрагмент кода может создать исключение? Или выбросить исключение?
Ключевое слово throw
, поэтому я склоняюсь к этому, но для создания исключения используется также много...
Есть ли у них какой-то другой смысл? Кто-то из них может повлиять на другую? Или это всего лишь два слова, означающие одно и то же?
В терминологии С# повышение используется в контексте событий, а бросание используется в контексте исключений.
Лично я думаю, что сочетание throw/catch
более красивое, чем raise/catch
.
Я не могу говорить за С#, но на С++ выбрано "throw", потому что "повышение" уже было принято как стандартное имя функции.
Я думаю, что в то время как throw является лучшим, эти два условия взаимозаменяемы. Очень полезно, если вы должны использовать его дважды в каком-либо тексте, чтобы избежать повторения одного и того же слова. Но эта стилистика, которая не нужна для технического письма (но все же хорошая вещь).
Терминология различных языков выступает за "бросок". И я согласен с тем, что "throw" делает больше смысла, учитывая, что это ключевое слово, и документация по компилятору/языку всегда относится к тому, что исключение "брошено".
Тем не менее, во чреве бегемотских исключений на самом деле Raised, не выбрасывается. Если вы обнаружите себя достаточно глубоко в отладчике, глядя на EXCEPTION_RECORD, вы говорите в терминологии SEH, в котором конкретный класс исключений для компилятора/языка (eh, clr, vcpp) - это просто одним из многих исключений вкусов. Я предполагаю, что исходные условия, для которых исключения, в которых были подняты, например ошибки страниц и, были отмечены условиями "ядром", которое "информировало" пользовательский режим условия, а не исключение, код пользователя "метался" на себя, поэтому этот термин имеет больше смысла в этом контексте.
Либо бросок, либо рейз кажется прекрасным, они означают то же самое для меня. Я бы не писал это, но когда я говорю, я обычно говорю "вытащить исключение".
Для событий я использовал бы "огонь событие" или "поднять событие".