异常的方法签名中的 throw 语句
Throw statement in exception's method signature
以下代码中throw语句的用途是什么?
struct MyException : public exception
{
const char * what () const throw ()
{
return "C++ Exception";
}
};
它告诉编译器(和阅读器)这个函数将永远不要通过异常退出。更重要的是,在这种情况下告诉编译器和读者函数必须满足相同的条件。(在这种情况下可能存在,因为函数what
被声明为方式为std::exception
。)
编辑:
这被称为异常规范,有两种形式:throw()
和noexcept
。和形式CCD_ 5还允许在括号中指定类型名称,在这种情况下,您保证不会抛出任何不兼容的东西使用这些类型。(在C++11语法中,throw()
形式称为动态异常规范。)
相关文章:
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- 我的简单if-else语句是如何无法访问的代码
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- 为什么是0;C++中的有效语句
- Insert函数不适用于2 if语句C++
- If语句未被求值C++
- C++嵌套if语句,基本货币交换
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 是否可以使用if constexpr删除控制流语句
- 无法理解此 return 语句的功能,没有它就会发生运行时错误
- 我似乎对if/else的基本语句有问题:/
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- If语句在c++中被忽略
- 比较if语句中的数组值和int值
- 以在Qt中的IF语句中设置时间延迟
- 是否有理由大多数/所有 try-catch 示例只对 throw 语句使用 void 子函数
- 如何实现 throw 语句来执行整数值
- 异常的方法签名中的 throw 语句
- 与c++的Exception throw语句混淆