что означает это объявление? исключение () бросок ()

станд.:: класс исключений определяется следующим образом

exception() throw() { }
virtual ~exception() throw();
virtual const char* what() const throw();

что делает бросок (), синтаксис означает в объявлении? Может бросить (), берут параметры? Что никакие параметры означает?

8
задан Murali 13 January 2010 в 17:52
поделиться

5 ответов

Без какого-либо параметра это означает, что упомянутые функции не бросают любые исключения.

Если вы укажете что-либо в качестве параметра, вы говорите, что функция бросит только исключения этого типа. Обратите внимание, однако это не исполнение для компилятора. Если исключение какого-либо другого типа, которое будет выброшено, программа позвонит STD :: Terminate ().

12
ответ дан 5 December 2019 в 05:18
поделиться

Это «Спецификация исключения». бросить () означает «Эта функция не будет бросать никаких исключений». Вы также можете указать исключения, поэтому бросок (FOO) скажет, что эта функция может бросать исключения типа Foo.

Полезность этой функции довольно немного обсуждалась в сообществе C ++ - общая оценка, по-видимому, это не особенно полезно. Для более подробной информации о взгляде эта статья травы .

18
ответ дан 5 December 2019 в 05:18
поделиться

Это называется спецификацией броска. Он определяет, какие исключения (если таковые имеются) могут быть брошены из функции.

Эти звуки великолепны в теории, но есть проблемы с использованием их.

Хорошее обсуждение об этом можно найти по этому вопросу , поэтому .

1
ответ дан 5 December 2019 в 05:18
поделиться

целые числа между -1 до 255 (?), А также строковые литералы, интернированы. Каждый экземпляр в источнике фактически представляет один и тот же объект.

В CPYHON, результатом ID ID () - это адрес в процессе пространства Pyobject.

-121--3080501-

Это спецификация исключения . Нет аргументов означает, что функция не может бросить какие-либо исключения.

1
ответ дан 5 December 2019 в 05:18
поделиться

Может бросать () принимать параметры?

Да, его можно использовать для объявления о том, какие параметры метод разрешено бросить.

Также деструктор помечен как бросок (), деструкторы никогда не должны вызывать исключения, поскольку они могут уже выполняться в контексте брошенного исключения.

0
ответ дан 5 December 2019 в 05:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: