C++之try catch 异常处理入门实例
2017-09-20 16:41
435 查看
[cpp] view
plain copy
#include <exception>
#include <iostream>
using namespace std;
/**********************************
//project -> Properties -> C/C++ -> Code Generation --> Enable C++ Exceptions
//选择 Yes with SEH Exceptions (/EHa) 这样的话C++的try catch 也可以捕获到空指针,内存越界,0除异常
//默认是选择Yes (/EHsc)
**********************************/
void TestIntType()
{
try
{
throw 1;
}
catch(...)
{
cout<< "在 try block 中, 准备抛出一个异常." << endl;
}
}
void TestDoubleType()
{
try
{
throw 0.5;
}
catch(...)
{
cout<< "在 try block 中, 准备抛出一个异常." << endl;
}
}
void TestEmptyPointType()
{
try
{
int* p = NULL;
*p = 3;
}
catch(...)
{
cout<< "非法地址操作异常" << endl;
}
}
void TestDivZeroType()
{
try
{
int b = 0;
int a = 3/b;
}
catch(...)
{
cout<< "0除异常" << endl;
}
}
void TestMemoryOutType()
{
int * a = new int[4];
try
{
for (int i = 0; i<245; i++)
{
a++;
}
*a = 3;
}
catch(...)
{
cout<< "内存越界异常" << endl;
}
}
int main(int argc, char* argv[])
{
TestEmptyPointType();
//TestDivZeroType();
TestMemoryOutType();
return 1;
}
plain copy
#include <exception>
#include <iostream>
using namespace std;
/**********************************
//project -> Properties -> C/C++ -> Code Generation --> Enable C++ Exceptions
//选择 Yes with SEH Exceptions (/EHa) 这样的话C++的try catch 也可以捕获到空指针,内存越界,0除异常
//默认是选择Yes (/EHsc)
**********************************/
void TestIntType()
{
try
{
throw 1;
}
catch(...)
{
cout<< "在 try block 中, 准备抛出一个异常." << endl;
}
}
void TestDoubleType()
{
try
{
throw 0.5;
}
catch(...)
{
cout<< "在 try block 中, 准备抛出一个异常." << endl;
}
}
void TestEmptyPointType()
{
try
{
int* p = NULL;
*p = 3;
}
catch(...)
{
cout<< "非法地址操作异常" << endl;
}
}
void TestDivZeroType()
{
try
{
int b = 0;
int a = 3/b;
}
catch(...)
{
cout<< "0除异常" << endl;
}
}
void TestMemoryOutType()
{
int * a = new int[4];
try
{
for (int i = 0; i<245; i++)
{
a++;
}
*a = 3;
}
catch(...)
{
cout<< "内存越界异常" << endl;
}
}
int main(int argc, char* argv[])
{
TestEmptyPointType();
//TestDivZeroType();
TestMemoryOutType();
return 1;
}
相关文章推荐
- C++之try catch 异常处理入门实例
- C++ 异常处理 入门
- C++ 异常处理 入门
- C++ 异常处理 入门
- 【转】 ABAP中的异常处理 - TRY CATCH的使用实例
- C++的try块与异常处理及调试技术实例解析
- C++ 异常处理 入门
- C++ 异常处理 入门
- C++ 异常处理 入门
- C++ 异常处理 入门
- Quartz入门实例6-处理job异常
- C++异常处理的用处
- C++ 异常处理
- C与C++中的异常处理
- C++中try_catch_throw的做异常处理用法
- C++处理异常技巧-try,catch,throw,finally
- (Oracle)异常处理的相关知识与实例
- 简记c、c++、java异常处理机制的区别
- node.js入门 - 7.异常处理与多进程开发
- [转]C++异常处理 1