关于编程气势气魄的接头5
当前位置:以往代写 > C/C++ 教程 >关于编程气势气魄的接头5
2019-06-13

关于编程气势气魄的接头5

关于编程气势气魄的接头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版。

说明:

在措施效率要求较高、可能挪用较量频繁的函数,对进口参数的错误查抄,利用断言方法,其利益如上所叙,但其结实性不强,所以在其他环境下,仍要求利用传统的查抄方法,以加强措施的结实性,虽然,为了调试利便,可同时利用断言方法。

③、严格的测试:

对每一段代码都要求举办严格的测试,出格对一些成果函数要对其各类临界点(好比零值、无穷大的值等)举办测试。只管做到每一段代码零错误。

    关键字:

在线提交作业