用异常处理机制保证已获得资源的正常释放

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

异常处理机制给程序在运行时出现错误,提供了一个处理、恢复错误的能力,提高了程序的健壮性。

我们也可以利用异常处理机制保证资源的释放:如下

void f(const char* p)

{

FILE* f = 0;

try

{

f = fopen(p,”r”);

// use f

}

catch (…) { // handle exception

// …

}

if (f) fclose(f);

}

如果以上形式并不能完全处理异常,可以将异常重新抛出,通知

上级程序继续处理。如:

void f(const char* p)

{

FILE* f = 0;

try

{

f = fopen(p,”r”);

// use f

}

catch (…) { // handle exception

// …

if (f) fclose(f);

throw;

}

if (f) fclose(f);

}

另外也可以将资源的申请、释放封装在构造函数和析构函数中,或者使用auto_ptr。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航