Здравствуйте, Alex Reyst, Вы писали:
AR>Гм... Как любитель словесности, был бы благодарен за ссылки хотя бы на намеки — но на намеки достоверные — о причинах появления именно throw/catch для обозначения генерации/обработки исключений. Я ничего не нашел...
Страуструп пишет об этом в книге "Дизайн и эволюция языка C++" (М. 2000, стр. 389), глава 16.3 (Обработка исключений/Синтаксис). В частности:
Слово throw было выбрано отчасти из-за того, что более очевидные слова raise и signal уже были заняты под функции из стандартной библиотеки C.
Здравствуйте, Alex Reyst, Вы писали:
AR>Угу, и можно imho даже обозначить причину, по которой возникла пара throw/catch: это переход к представлению исключения как объекта, а не события. В общем случае, например, при аппаратных исключениях, использование throw представить трудно .
Имхо, все проще — бейсбол глубоко укоренился в американском сознании.
AR>Позволю себе резюмировать: "нейтральными" терминами в русском языке будут наверное генерировать/обрабатывать исключение. Остальные варианты — специфика конкретных языков.
Здравствуйте, Кирилл Осенков, Вы писали:
КО>Здравствуйте, wildwind, Вы писали:
W>>И кто как пишет в русской документации? КО>В Страуструпе используется генерация, генерирует. Так и пишу, по-моему, нормально, слух не режет.
Вообще-то у Страуструпа переводится слово throw, а не raise.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, G.I. O_Neil, Вы писали:
GIO>В русском языке вопрос, проблема и т.п. поднимается, в английском тоже. Лично мне выражение "поднять исключение" не режет слух, так и представляется, как из "недр" вложенных циклов и процедур исключение поднимается(всплывает) наверх . Тем не менее, существуют уже устоявшееся в русском-программистком языке типа "генерация исключения".
+1.
Собственно, вообще в языке употребление любого слова допустимо, при условии, что собеседник тебя понимает. Задача обычно состоит в том, чтобы тебя поняли как можно больше людей .
Один из способов достижения этой цели в условиях неустоявшейся терминологии — употребление слова, использующегося на наиболее высоком из возможных семантических уровней. Например, в данном случае движение "от частного к общему" может выглядеть следующим образом:
C++ exception -> software exception -> exception (включая, например, hardware exception) -> interrupt.
Последнее понятие в этой цепочке совершенно не обязательно является "вопросом или проблемой", а может являться вполне "закономерным" явлением. Тем не менее слово "генерация" более чем применимо и к нему, и ко всем узлам этой цепи.
Подобную цепочку можно проследить обычно на примере толковых словарей. Так, в английских источниках глагол throw (применительно к исключению) объясняется с помощью глагола raise, а последний, в свою очередь — с помощью глагола generate.
Все, что здесь сказано, может и будет использоваться против меня...
Здравствуйте, wildwind, Вы писали:
W>И кто как пишет в русской документации?
В Страуструпе используется генерация, генерирует. Так и пишу, по-моему, нормально, слух не режет.
Здравствуйте, Sinclair, Вы писали:
AR>>Или я сильно не прав и есть существенные различия? S>Да нет.
Спасибо, что подтвердили. А то у меня начали рождаться подозрения в собственных знаниях
S>Это просто различные идиомы: throw/catch — кто-то бросает, а кто-то ловит. В паскале соответственно raise/except — кто-то возбуждает, а кто-то реагирует.
Угу, и можно imho даже обозначить причину, по которой возникла пара throw/catch: это переход к представлению исключения как объекта, а не события. В общем случае, например, при аппаратных исключениях, использование throw представить трудно .
Позволю себе резюмировать: "нейтральными" терминами в русском языке будут наверное генерировать/обрабатывать исключение. Остальные варианты — специфика конкретных языков.
Все, что здесь сказано, может и будет использоваться против меня...
Здравствуйте, Alex Reyst, Вы писали:
AR>Благодарю за комплимент. Но позволю себе заметить — не в первый раз на этом сайте — что оценка моих способностей и знаний регулярно преувеличивается. Мы ведь не на лингвистическом форуме, не так ли?
см. Вашу собственную подпись
Don't crash the ambulance, whatever you do!
ICQ#327823673
In her dealings with man Destiny never closed her accounts. (c) Oscar Wilde
Здравствуйте, wildwind, Вы писали:
W>Исключение ... (делает что?) W>Выбрасывается/возбуждается/инициируется/генерируется/...? W>Lingvo дает "возбуждение", но хотелось бы и других аргументов, не менее солидных. Да и звучит "возбуждение" как-то двусмысленно
. "Генерация исключения" — наверное, наиболее употребляемый сейчас вариант. "Возбуждение..." я бы поставил на втором месте (как достаточно близкое к употреблению raise вне компьютерной тематики) — в контексте оно двусмысленно вовсе не звучит; и, если мне память не изменяет, именно такой вариант использовался чаще всего ранее. "Выбрасывание..." — более чем корректно в разговорной речи, но не думаю что оно допустимо в документации.
Инициирование..., порождение... — .
Все, что здесь сказано, может и будет использоваться против меня...
Здравствуйте, wildwind, Вы писали:
GIO>>Снимаю шляпу, т.е. фуражку. W>Офицер с программистским уклоном?
Судя по всему в наших рядах есть разведчики!
А у программиста, как "у людоеда и у лука есть слои" ((с)Шрек)
Don't crash the ambulance, whatever you do!
ICQ#327823673
In her dealings with man Destiny never closed her accounts. (c) Oscar Wilde
Здравствуйте, Alex Reyst, Вы писали:
AR>Гм... Как любитель словесности, был бы благодарен за ссылки хотя бы на намеки — но на намеки достоверные — о причинах появления именно throw/catch для обозначения генерации/обработки исключений. Я ничего не нашел...
Это всего лишь умозрительное предположение. IMHO — оно и есть IMHO. Просто это предположение хорошо вписывается в образ американского программиста. Да и слова throw и catch в комплекте с бейсболом дают 200000 вхождений
Здравствуйте, Alex Reyst, Вы писали:
AR>В любом случае выражения raise/throw exception употребляются в принципе на равных, не считая "цветовой дифференциации штанов" — т.е. практики употребления в различных языках программирования — а ведь в вопросе упоминалось "найти вариант, не сильно привязанный к конкретному языку".
AR>Или я сильно не прав и есть существенные различия?
Ну, например, Microsoft в статье Event usage guidelines настоятельно рекомендует использовать raise вместо всего остального:
When you refer to events in documentation, use the phrase, "an event was raised" instead of "an event was fired" or "an event was triggered."
Здравствуйте, Кирилл Осенков, Вы писали:
КО>Ну, например, Microsoft в статье Event usage guidelines настоятельно рекомендует использовать raise вместо всего остального:
А где в приведенной цитате насчет "вместо всего остального"?
Речь идет исключительно о словесном мусоре — fired, triggered в английском такой же мусор, как и инициирование, порождение в русском языке (применительно к данной ситуации, конечно).
У меня же речь шла о throw, gererate — я так думаю, против этих слов у MS возражений нет?
Все, что здесь сказано, может и будет использоваться против меня...
Здравствуйте, Alex Reyst, Вы писали:
AR>2) Все-таки event и exception — не одно и то же .
Ой!!! Приехали. Попутал событие с исключением. Видимо, тяжелый день был...
Исключение ... (делает что?)
Выбрасывается/возбуждается/инициируется/генерируется/...?
Желательно найти вариант, не сильно привязанный к конкретному языку.
Lingvo дает "возбуждение", но хотелось бы и других аргументов, не менее солидных. Да и звучит "возбуждение" как-то двусмысленно
Здравствуйте, Sinclair, Вы писали:
КО>>В Страуструпе используется генерация, генерирует. Так и пишу, по-моему, нормально, слух не режет. S>Вообще-то у Страуструпа переводится слово throw, а не raise.
Да, спасибо; я на это не обратил внимания.
В любом случае выражения raise/throw exception употребляются в принципе на равных, не считая "цветовой дифференциации штанов" — т.е. практики употребления в различных языках программирования — а ведь в вопросе упоминалось "найти вариант, не сильно привязанный к конкретному языку".
Или я сильно не прав и есть существенные различия?
Все, что здесь сказано, может и будет использоваться против меня...
AR>Или я сильно не прав и есть существенные различия?
Да нет. Это просто различные идиомы: throw/catch — кто-то бросает, а кто-то ловит. В паскале соответственно raise/except — кто-то возбуждает, а кто-то реагирует.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Присоединяю свое мнение к мнению Алекса, с небольшим комментарием (личное мое имхо).
В русском языке вопрос, проблема и т.п. поднимается, в английском тоже. Лично мне выражение "поднять исключение" не режет слух, так и представляется, как из "недр" вложенных циклов и процедур исключение поднимается(всплывает) наверх . Тем не менее, существуют уже устоявшееся в русском-программистком языке типа "генерация исключения".
Don't crash the ambulance, whatever you do!
ICQ#327823673
In her dealings with man Destiny never closed her accounts. (c) Oscar Wilde
Здравствуйте, Кирилл Осенков, Вы писали:
КО>Здравствуйте, wildwind, Вы писали:
W>>И кто как пишет в русской документации? КО>В Страуструпе используется генерация, генерирует. Так и пишу, по-моему, нормально, слух не режет.
Я тож обычно так пишу. Тем более, что исключение — это объект, значит он может "рождаться" и "умирать". ИМХО, можно даже "создать" исключение.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Alex Reyst, Вы писали:
Мессир, позвольте задать нескромный вопрос о Вашем образовании Программист с лингвистическим уклоном? Не часто встретишь такие "вкусные" (определение одного профессора) речевый конструкции. Снимаю шляпу, т.е. фуражку.
Don't crash the ambulance, whatever you do!
ICQ#327823673
In her dealings with man Destiny never closed her accounts. (c) Oscar Wilde
, выращенной на гидропонике, а не в натуральной почве (или наоборот? ). Но зато слоев у меня много .
GIO>Программист с лингвистическим уклоном? Не часто встретишь такие "вкусные" (определение одного профессора) речевый конструкции. Снимаю шляпу, т.е. фуражку.
Благодарю за комплимент. Но позволю себе заметить — не в первый раз на этом сайте — что оценка моих способностей и знаний регулярно преувеличивается. Мы ведь не на лингвистическом форуме, не так ли?
Все, что здесь сказано, может и будет использоваться против меня...
Здравствуйте, Kupaev, Вы писали:
AR>Угу, и можно imho даже обозначить причину, по которой возникла пара throw/catch K>Имхо, все проще — бейсбол глубоко укоренился в американском сознании.
Гм... Как любитель словесности, был бы благодарен за ссылки хотя бы на намеки — но на намеки достоверные — о причинах появления именно throw/catch для обозначения генерации/обработки исключений. Я ничего не нашел...
Все, что здесь сказано, может и будет использоваться против меня...
Здравствуйте, Alex Reyst, Вы писали:
AR>А где в приведенной цитате насчет "вместо всего остального"? AR>Речь идет исключительно о словесном мусоре — fired, triggered в английском такой же мусор, как и инициирование, порождение в русском языке (применительно к данной ситуации, конечно).
Не знаю, мне почему-то так подумалось, что они именно это имели ввиду (здравый смысл: не имеет смысла перечислять все возможные неправильные варианты, достаточно указать единственный правильный. Я вот навскидку могу привести: throw, generate, fire, trigger, где-то даже launch видел...). Кроме того, сама цель этого предложения, на мой взгляд, это предотвратить вавилонское столпотворение вокруг этого понятия и в законодательном порядке ввести единственный для всех вариант.
AR>У меня же речь шла о throw, gererate — я так думаю, против этих слов у MS возражений нет?
Честно, не знаю