You must log in or register to comment.
goto is the standard way of performing error handling in C, since there is no exception system or destructor mechanism to free resources when they are going out of scope.
People who think gotos are bad like Dan Brown novels.
Gotos being bad falls in the it depends category.
Bad:
- When you think you’re going to do something clever (when you should probably be reaching for a different tool that you may or may not know exists)
Good:
- When in the form of a jump that’s was written by a sound compiler
- When learning how assembly works
- When working on codecs and you’re actually going to spend the many hours to get everything right.
- Labelled breaks in nested for loops
- Embedded systems when resources are constrained
- When writing debuggers
- When writing anti-cheat systems
- And finally, when you actually need to because you’re manually managing things (e.g. you’re writing a kernel)