On 2017-04-13, Rob Gaddi <rgaddi@highlandtechnology.invalid> wrote: > No, C doesn't support exception handling. As a result, handling error > conditions in C is a huge pain for which (forward-only) goto is often, > while not the only remedy, the least painful one.
Indeed. That is almost the only place I use 'goto' in C, and the almost the only place I see others use it. Very occasionally, you see a the error handling goto refactored into a backwards "goto retry": this code foo() { while (1) { <some code> if (<some-error-condition>) goto error: <more code> return; error: <recover-from-error-condition> } } becomes foo() { retry: <some code> if (<some-error-condition>) { <recover-from-error-condition> goto retry: } <more code> } I happen to find the latter easier to read. Fortunately, Python doesn't need goto to deal with things like that. > Or if you've really developed a need for self-harm, setjmp/longjmp. I've tried to use setjmp/longjmp for error handling a few times. It never went well... -- Grant Edwards grant.b.edwards Yow! Catsup and Mustard all at over the place! It's the gmail.com Human Hamburger! -- https://mail.python.org/mailman/listinfo/python-list