станд.:: класс исключений определяется следующим образом
exception() throw() { }
virtual ~exception() throw();
virtual const char* what() const throw();
что делает бросок (), синтаксис означает в объявлении? Может бросить (), берут параметры? Что никакие параметры означает?
Без какого-либо параметра это означает, что упомянутые функции не бросают любые исключения.
Если вы укажете что-либо в качестве параметра, вы говорите, что функция бросит только исключения этого типа. Обратите внимание, однако это не исполнение для компилятора. Если исключение какого-либо другого типа, которое будет выброшено, программа позвонит STD :: Terminate ().
Это «Спецификация исключения». бросить () означает «Эта функция не будет бросать никаких исключений». Вы также можете указать исключения, поэтому бросок (FOO) скажет, что эта функция может бросать исключения типа Foo.
Полезность этой функции довольно немного обсуждалась в сообществе C ++ - общая оценка, по-видимому, это не особенно полезно. Для более подробной информации о взгляде эта статья травы .
Это называется спецификацией броска. Он определяет, какие исключения (если таковые имеются) могут быть брошены из функции.
Эти звуки великолепны в теории, но есть проблемы с использованием их.
Хорошее обсуждение об этом можно найти по этому вопросу , поэтому .
целые числа между -1 до 255 (?), А также строковые литералы, интернированы. Каждый экземпляр в источнике фактически представляет один и тот же объект.
В CPYHON, результатом ID ID ()
- это адрес в процессе пространства Pyobject.
Это спецификация исключения . Нет аргументов означает, что функция не может бросить какие-либо исключения.
Может бросать () принимать параметры?
Да, его можно использовать для объявления о том, какие параметры метод разрешено бросить.
Также деструктор помечен как бросок (), деструкторы никогда не должны вызывать исключения, поскольку они могут уже выполняться в контексте брошенного исключения.