dimanche 3 décembre 2017

Return error code after first detected error

I have a function which does some initialization and calls other functions, each of which returns an error code. I want to be able to return from this function after the first detected error like this:

error_code = FirstFunction();
if (error_code != 0) {
    return error_code;
}
error_code = SecondFunction();
if (error_code != 0) {
    return error_code;
}
// etc...

However, not only does this look rather cumbersome, it also has multiple return statements, and for compliance reasons at my company this is not allowed.

How can I rearrange this so that there is only one return statement, but still stop after the first error code? The only way I can think of is to do nested if statements:

error_code = FirstFunction();
if (error_code == 0) {
    error_code = SecondFunction();
    if (error_code == 0) {
        error_code = ThirdFunction();
        // etc...
    }
}
return error_code;

But this could get unreasonable pretty fast. Is there another way to do this?

Aucun commentaire:

Enregistrer un commentaire