Brian wrote:
[snip]

neither of those seem necessary in that example, whats wrong with this:
void somefunction() {
        do_stuff();
        if (error)
                handle_error();
        else
                do_more_stuff();
}

A few things I can think of:

1. You're mixing error handling code with the other code. This breaks the flow and makes the logic harder to follow.

2. If you've got more than one point in the function where you need to do error handling, then you're going to be duplicating code; error handlers are very rarely just a single function call.

3. The point was that execution "fell out" after the handler. If you want to use conditionals, you can end up with really deeply indented code which is a bugger to read.

It's rather ironic, but one thing that struck me going from Visual Basic to Python was that VB had much nicer error handling; instead of having error handling all over the place, it was all localised to the end of the function. This is why I absolutely adore scope statements.

Of course, you're technically correct; in that specific example, you could do it either way. :)

  -- Daniel

Reply via email to