Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // === Duplicated code ===
- HANDLE foo = AcquireFoo();
- if(!UseFoo(foo)){
- ReleaseFoo(foo);
- return FAIL;
- }
- // ...
- UseFooBar(foo);
- ReleaseFoo(foo);
- return OK;
- // === fake do while ===
- int result = OK;
- HANDLE foo = AcquireFoo();
- do {
- if(!UseFoo(foo)){
- result = FAIL;
- break;
- }
- // ...
- UseFooBar(foo);
- } while (0);
- ReleaseFoo(foo);
- return result;
- // === try/catch ===
- int result = OK;
- HANDLE foo = AcquireFoo();
- try {
- if(!UseFoo(foo)){
- throw MyException(FAIL);
- }
- // ...
- UseFooBar(foo);
- } catch (const MyException & e) {
- result = e.result;
- }
- ReleaseFoo(foo);
- return result;
- // === goto ===
- int result = OK;
- HANDLE foo = AcquireFoo();
- if(!UseFoo(foo)){
- result = FAIL;
- goto release;
- }
- // ...
- UseFooBar(foo);
- release:
- ReleaseFoo(foo);
- return result;
- // === another function ===
- int doSomething(HANDLE foo, int x, bool y /*, etc.. */){
- if(!UseFoo(foo)){
- return FAIL;
- }
- // ...
- UseFooBar(foo);
- return OK;
- }
Add Comment
Please, Sign In to add comment