首页 > 编程语言 > 详细

C++ 异常处理

时间:2015-11-01 00:12:54      阅读:344      评论:0      收藏:0      [点我收藏+]
// ConsoleApplication10.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <windows.h>
using namespace std;

BOOL bTest = false;
void Get()
{
    char *p = NULL;//2
    __try{
        if (!bTest){
            bTest = true;
            strcpy(p, "123");//3
       //下面不被执行
       //...
}
else{ p = new char[100]; strcpy(p, "123"); } } __finally{//在处理 if (p){//5,delete不执行 delete[]p; } } } void Test() { int i = 0; while (i++ < 2){ __try{ Get();//1 } __except (EXCEPTION_EXECUTE_HANDLER){//4 printf("异常出现,但是不作处理\n");//6 } } } int _tmain(int argc, _TCHAR* argv[]) { Test(); return 0; }

第一次循环如上。

第二次循环如下:

// ConsoleApplication10.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <windows.h>
using namespace std;

BOOL bTest = false;
void Get()
{
	char *p = NULL;//2
	__try{
		if (!bTest){
			bTest = true;
			strcpy(p, "123");
		}
		else{
			p = new char[100];
			strcpy(p, "123");//3
		}
	}
	__finally{
		if (p){
			delete[]p;//4
		}
	}
}

void Test()
{
	int i = 0;
	while (i++ < 2){
		__try{
			Get();//1
		}
		__except (EXCEPTION_EXECUTE_HANDLER){
			printf("异常出现,但是不作处理\n");
		}
	}
}

int _tmain(int argc, _TCHAR* argv[])
{
	Test();

	return 0;//5
}

  

C++ 异常处理

原文:http://www.cnblogs.com/qq76211822/p/4926429.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!