1. Hernan Echegoyemberry
  2. Delorean

Overview

HTTPS SSH

DELOREAN

An Error Handler for C/C++ funtions, focused on code readability. It allows a clear control flow, adding Ignore, Retry, Jump, and Back functionality when a function returns error. It's macro based, written in C and targeting embedded systems.

Features

  • Simple (clean code and really easy to learn)
  • Lightweight (ready for embedded systems)
  • Macro based (just include a header, and it's ready to use)
  • Novel license
  • It's optimized, but taking care of the 88mph limit
  • Warning: right now there is not any intention to be backward compatible (still)

Do you call many successive functions in C language ? and do you want to check if those functions return OK or ERROR?

let supose

==0 mean OK 
!=0 mean ERROR

so the code could be:

if(functionA()!=0)
 {error management}
if(functionB()!=0)
 {error management}
if(functionC()!=0)
 {error management}
if(functionD()!=0)
 {error management}
if(functionE()!=0)
 {error management}

But what if at error I wish to jump the other? and what if I wish to "retry" the one that fail? and of course, what if I also want the code to be clean and beautiful ?

this is another option of coding:

do{
   if(functionA()!=0)  {error=1;break;}
   if(functionB()!=0)  {error=2;break;}
   if(functionC()!=0)  {error=3;break;}
   if(functionD()!=0)  {error=4;break;}
   if(functionE()!=0)  {error=5;break;}
   break;
}while(1)

{error management with a switch for example}

Mmmm but the code don't get any better at beauty, and furthermore I still can't "retry" easily...

What about something like this...

TEST
    functionA();
    functionB(); Repeat_If_Fail(4 times);
    functionC();
    functionD(); Jump_If_Fail();
    functionE();
END_TEST

Does it looks nice?

So you should take a look to Delorean.h

it's even more compact :

TEST
    functionA() _
    functionB() _R(4);
    functionC() _
    functionD() _
    functionE() _
END_TEST

enjoy