关于编程气势的谈论5[VC/C++编程]
本文“关于编程气势的谈论5[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
5、错误处理:
1、错误报告处理.
编程中要求考虑函数的各种履行情形,尽大概处理全部的流程情形.将函数分为两类:
一类为与屏幕的显示无关,(不与用户交换信息的函数)
一类为与屏幕的显示相关.(与用户交换信息的函数)
关于与屏幕显示无关的函数,函数通过返回值来报告错误.
关于与屏幕显示有关的函数,函数要负责向用户发出告诫,并举行错误处理.
错误处理代码普通单独成立通用处理函数.以下:
void cmDeal_With_Error(long ErrCode)
{
switch(ErrCode)
{
case 1://注释
......
case 2://注释
......
default://注释
......
}
}
2、尽早发现程序中的错误:
①、器重编译器中的告诫信息.
关于编译器产生的告诫信息,我们应当惹起充足的器重,实际上很多告诫信息指导了程序中潜在的错误危险.所以我们要认真查抄每一个告诫信息,查看能否有某种隐患.尽大概消除告诫信息.
②、操纵断言来查抄错误
关于程序中的某种假定,或避免某些参数的不法值,操纵断言来帮忙查错是一种好的办法.
比方下面的函数:
long cmMemCpy(void * pvToMem, void* pvFromMem, size_t wSize)
{
……
if(pvToMem==NULL||pvFromMem==NULL)
{
lResult=CM _POINT_IS_NULL;
goto: END;
}
while(wSize-- >0)
{
*pvToMem++=pvFromMem++;
}
END:
return lResult;
}
采取判断可以查抄传入的指针错误,但是这样的判断是程序终究的编译代码变大,同时降低了终究公布的程序的履行效率.由于传入空指针明显是调用这函数的程序的错误,而不是这个函数的错误,我们可以考虑采取断言来替换指针查抄,即用
ASSERT( pvToMem!=NULL&&pvFromMem!=NULL)
替换
if(pvToMem==NULL||pvFromMem==NULL)
{
lResult=CM_POINT_IS_NULL;
goto: END;
}
这样只会在debug版中才会产生查抄代码,而在正式公布版中不会带有这些代码.并且可以便利我们在程序调试中和测试时发现错误,同时又不影响程序的效率.
在下面的一些情形中必须加断言:
a、数的参数,分外是指针参数必须操纵断言来举行确认.
b、操纵断言查抄程序中的各种假定的精确性.
c、在程序计划中不要简单认为某种情形不大概发生,对你认为不大概发生的情形必须用断言来证实.
为了使程序中的断言施展作用,全部用于在开辟内部举行测试或调试的动态库、执路程序、组件必须采取debug版.
阐明:
在程序效率要求较高、大概调用对比频繁的函数,对进口参数的错误查抄,利用断言方法,其长处如上所叙,但其结实性不强,所以在其他情形下,仍要求利用传统的查抄方法,以加强程序的结实性,当然,为了调试便利,可同时利用断言方法.
③、严峻的测试:
对每一段代码都要求举行严峻的测试,分外对一些功效函数要对其各种临界点(比方零值、无穷大的值等)举行测试.尽大概做到每一段代码零错误.
以上是“关于编程气势的谈论5[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |