Описание тега exception-specification

2 ответа

Может ли g++ проверить спецификаторы броска?

Два вопроса по этому поводу: Есть ли способ заставить g++ игнорировать throw спецификаторы?(например, насколько я помню, Visual Studio игнорирует спецификаторы броска, отличные от throw()) Можно ли заставить g++ проверить правильность спецификаторов…
2 ответа

Повторить поведение спецификаций исключений под VC++ 9.0

Я работаю над старым кодом, который сильно зависит от поведения спецификаций исключений, описанных в стандарте языка. А именно, вызовы std:: surprise () при нарушениях спецификации исключений описанной ниже формы. foo() throw(T) { /*...*/ } Специфик…
1 ответ

Может ли main() иметь спецификацию исключений?

В стандарте C++ может main функция имеет спецификацию исключения? Например, законно ли следующее? int main() noexcept {}
2 ответа

Удалите спецификации исключений из кода C++ с помощью sed

Я хочу автоматически удалить устаревшие спецификации исключений из моего кода C++ и попытаться использовать sed для этой задачи. Формат спецификации исключения throw следующий со списком исключений (слов) в скобках, поэтому я написал это sed: sed -r…
05 фев '16 в 08:39
3 ответа

Спецификация исключения

Я знаю, что эта функция будет устаревшей в C++0x, но для меня, как для начинающего, это кажется хорошей идеей иметь ее. Может ли кто-нибудь объяснить мне, почему это не хорошая идея?
23 мар '10 в 16:32
11 ответов

Существует ли общепринятая идиома для обозначения кода C++, который может генерировать исключения?

Я видел проблемы при использовании кода C++, который неожиданно для вызывающей стороны выдает исключение. Не всегда возможно или практически невозможно прочитать каждую строку модуля, который вы используете, чтобы увидеть, генерирует ли он исключени…
11 авг '09 в 16:42
3 ответа

Переход на C++11, где деструкторы неявно объявляются с noexcept

В C++11 деструктор без какой-либо спецификации исключений неявно объявляется с noexcept, который является изменением от C++03. Таким образом, код, который раньше вызывал деструкторы в C++ 03, все равно прекрасно компилируется в C++11, но будет завис…
1 ответ

Есть ли смысл объявлять удаленную функцию как noexcept?

Рассмотрим два возможных определения класса: Выставка: struct A { A() = delete; }; Выставка': struct A { A() noexcept = delete; } Есть ли смысл объявлять удаленную функцию как noexcept?
2 ответа

Путаница с функциями без бросков

У меня есть 2 вопроса о функциях без метания: Зачем делать функцию без метания? Как сделать функцию без метания? Если код внутри функции на самом деле может throw, тогда я должен все еще сделать это не бросающим? Вот пример: void swap(Type t1, Type …
07 авг '12 в 08:27
1 ответ

Нет ограничений на типы исключений броска

Я узнал, что когда я указываю тип исключения, которое может генерировать функция, другие не могут быть выброшены, но когда я тестировал этот код, он не следовал этому правилу. void foo(int i)throw(int) { if(i==2) { throw("exception"); } } int main()…
19 июн '13 в 16:06
2 ответа

Как std::runtime_error::runtime_error(const std::string&) может удовлетворить требование std:: исключения для throw()?

std::exception требует, чтобы его конструктор throw(), Еще std::runtime_error принимает std::string в качестве аргумента, который указывает, что он хранит std::string где-то. Следовательно, назначение или копирование должно происходить где-то. И для…
28 июл '11 в 18:40
3 ответа

Попробуйте /Catch или IF для обработки отсутствующих файлов?

Лучше ли пытаться / ловить исключения или использовать операторы if для обработки разных результатов? Я пишу короткую программу на Java, чтобы скопировать файлы для удобства, и использую if для обработки события, когда файл не существует, и объявляю…
21 май '11 в 02:49
1 ответ

Спецификации исключений при выводе из std::exception в C++11

У меня есть класс исключения следующим образом: #include <exception> struct InvalidPathException : public std::exception { explicit InvalidPathException() {} const char* what() const; }; const char* InvalidPathException::what() const { return …
26 ноя '10 в 04:44
2 ответа

Спецификация исключений в C++ - обработка недопустимых исключений

Каково стандартное поведение в случаях, когда функция выдает исключение, отсутствующее в допустимом списке исключений? Например, когда я запускаю этот код: #include <iostream> #include <cstdlib> using namespace std; void NotLegal() throw…
3 ответа

Как избавиться от предупреждения "игнорируется спецификация исключений C++"

Я недавно получил DLL, которая была реализована другими. Я должен использовать это в моем приложении. В заголовочном файле их класса у них есть объявление функции void func1() throw (CCustomException); Теперь, когда я компилирую, получаю предупрежде…
29 июн '10 в 13:06
1 ответ

Typeinfo для ocl::CRException

Я пытался запустить свою программу на C++ с использованием g++, но получаю следующее исключение: "typeinfo for ocl:: CRException" использую пространство имен ocl, содержащее класс CRException. Пожалуйста, помогите мне в этом. Вот код, в который я вк…
26 мар '13 в 14:54
1 ответ

Почему std::map find() не объявлено как noexcept?

Стандарт C++14 определяет функции-члены find() std::map следующее: iterator find(const key_type& x); const_iterator find(const key_type& x) const; Почему эти функции не определены как noexcept? Что могло бы пойти не так внутри, что потребова…
2 ответа

Какова спецификация исключения для дефолтного виртуального деструктора в C++11?

Предположим, у меня есть: class Foo { public: virtual ~Foo()=default; }; Что такое спецификация исключения для дефолтного деструктора? Является ли дефолтный деструктор эквивалентным: virtual ~Foo() {}; or virtual ~Foo() throw() {}; or virtual ~Foo()…
24 май '12 в 04:25
3 ответа

Можно ли предоставить исключения в C++ виртуального (чистого) члена класса?

Если так, как? Я знаю, как предоставить спецификации исключений для таких членов, как class SOMEClass { public: void method(void) throw (SOMEException); virtual void pure_method(void) = 0; }; Таким образом method только броски SOMEException, Если я …
26 мар '09 в 18:41
1 ответ

C++\CLI исключение спецификация не допускается

Я опытный неуправляемый разработчик C++, новичок в C++\CLI. Почему управляемый C++ не позволяет спецификацию исключений? Пример ссылки Какова лучшая практика для определения исключений, которые мои методы генерируют тогда?
03 июн '09 в 17:10