You must log in or # to comment.
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)
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.