C++中的异常知识点小结
来源:互联网 发布:sqlserver union join 编辑:程序博客网 时间:2024/06/09 17:40
- catch(...)捕获所有异常
- 有时在catch(){}中使用throw;表示不对捕获的异常做任何处理,只是再抛出异常 将throw;空语句放在catch块之外,执行这种throw会调用terminate。
- 将带void*参数类型的异常处理器放在具有其他指针类型的异常处理器前是个逻辑错误,因为他将捕获所有异常,后面的根本不起作用。
- try块不抛出任何异常而正常地执行完毕时,控制传入try块后面最后的一个catch处理器之后的第一条语句而不是try块后的第一条语句
- catch块本生也可以抛出异常,但此异常的处理是由外层try块中的异常处理器处理。
- 异常指定可以由指定函数抛出一列异常:
int g( float h) throw(a, b, c)
{...}
这可以限定从函数抛出的异常类型。事实上这也可以抛出其他异常类型,此时调用unexpected。
若throw()为空,表示不抛出异常,但事实上还是可以抛出异常,不过调用unexcepted利用异常机制可以捕获每格派生类异常对象的指针或引用,但更简练的方法是捕获异常对象的指针和引用。这样可以避免错误。另外我们可以通过设置对象的属性来区分异常
再抛出异常示例:
#include<iostream>
#include<exception>
using namespace std;
void throwException() throw (exception)
{
try
{
cout << "Function throwException/n";
throw exception();
}
catch(exception e)
{
cout<<"Exception handled in function throwException/n";
throw;
}
}
int main()
{
try
{
throwException();
cout << "this shoule not print/n";
}
catch(exception e)
{
cout << "Exception handled in main/n";
}
cout << "Program control continues after catch in main" << endl;
return 0;
}
}
- C++中的异常知识点小结
- 异常知识点小结
- [C++]指针知识点小结
- php5中的异常小结
- php5中的异常小结
- C++【小结】3 - 小知识点
- C语言中的知识点
- C基础中的知识点
- 【C/C++】C++异常基础知识点
- C中的几个小知识点
- C语言中的零碎知识点
- c#中的异常处理
- Objective-C中的异常
- C语言中的异常
- 知识点小结
- 知识点小结
- 知识点小结
- 知识点小结
- 等待
- volatile(读书笔记)
- 关于如何在java的web应用获取服务器资源。
- 猴子搬香蕉
- IO操作的时候,不要忽视flush
- C++中的异常知识点小结
- 赋值兼容性原则
- 打印螺旋矩阵(递归解法)
- JTAG调试不稳定
- junit实践
- 变长参数应用举例
- 工作流术语和定义
- AJAX
- 孤崖一枝花