Подтвердить что ты не робот

С#: Вы поднимаете или бросаете исключение?

Я знаю, что это, вероятно, не имеет большого значения, но я хотел бы знать, что правильно.

Если часть кода содержит некоторую версию throw new SomeKindOfException(). Считаем ли мы, что этот фрагмент кода может создать исключение? Или выбросить исключение?

Ключевое слово throw, поэтому я склоняюсь к этому, но для создания исключения используется также много...

Есть ли у них какой-то другой смысл? Кто-то из них может повлиять на другую? Или это всего лишь два слова, означающие одно и то же?

4b9b3361

Ответ 1

В терминологии С# повышение используется в контексте событий, а бросание используется в контексте исключений.

Лично я думаю, что сочетание throw/catch более красивое, чем raise/catch.

Ответ 2

Я не могу говорить за С#, но на С++ выбрано "throw", потому что "повышение" уже было принято как стандартное имя функции.

Ответ 3

Я думаю, что в то время как throw является лучшим, эти два условия взаимозаменяемы. Очень полезно, если вы должны использовать его дважды в каком-либо тексте, чтобы избежать повторения одного и того же слова. Но эта стилистика, которая не нужна для технического письма (но все же хорошая вещь).

Ответ 4

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

Тем не менее, во чреве бегемотских исключений на самом деле Raised, не выбрасывается. Если вы обнаружите себя достаточно глубоко в отладчике, глядя на EXCEPTION_RECORD, вы говорите в терминологии SEH, в котором конкретный класс исключений для компилятора/языка (eh, clr, vcpp) - это просто одним из многих исключений вкусов. Я предполагаю, что исходные условия, для которых исключения, в которых были подняты, например ошибки страниц и, были отмечены условиями "ядром", которое "информировало" пользовательский режим условия, а не исключение, код пользователя "метался" на себя, поэтому этот термин имеет больше смысла в этом контексте.

Ответ 5

Либо бросок, либо рейз кажется прекрасным, они означают то же самое для меня. Я бы не писал это, но когда я говорю, я обычно говорю "вытащить исключение".

Для событий я использовал бы "огонь событие" или "поднять событие".