????C++????????Щ???
???????????? ???????[ 2014/2/26 9:55:01 ] ????????net ???? ???????
???????????????δ????????(Error-Handling)????Ρ?????????(rev#2)???????
?????????????????д?????
???????????????????????????????????????????????????????????????????????????????棬???????
???????????
???????????????????????????????????????д???????????????????????????????????
?????????????????????????????????????????????????????????е????????????invariants??
?????????????
????1) ???????????????????????????????????????????????????????status-code????
?????? if(foo(...)) {...}
????else {...}
??????
????while(foo(...)) {...}
????2)???Щ“????????”?????????????????????
?????????????????????????????????????????????????????????????????????????????????????????????????
???????磺????????????????????????????????????????
???????????????????????????????????????????“???????”???????????????????????????????
????3?????????bug??????????????invariants?????????
?????????????????????????????????????????????bug??
??????(exception) vs ??????error-code??
???????error-code ??????
??????????????????error-code?????????
????1 ?鷳????????????????????
????2 ??????????????????????????????????
?????????
void foo()
{
try{
op1;
op2;
...
} catch (...){
//log
//clean up
throw;
}
}
|
???????error-code
int foo()
{
if(!op1()) goto FAILED;
if(!op2()) goto FAILED;
return SUCCEEDED;
FAILED:
//log?? clean up
return FAILED;
}
|
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11