What's the idiomatic way to exit a program with some error code?
The documentation for Exit says "The program terminates immediately; deferred functions are not run.", and log.Fatal just calls Exit. For things that aren't heinous errors, terminating the program without running deferred functions seems extreme.
Am I supposed to pass around some state that indicate that there's been an error, and then call Exit(1) at some point where I know that I can exit safely, with all deferred functions having been run?
cleanby default and set todirtyon non-fatal error. And before yourmain()exits, you can check for that variable. Not perfectly nice, but it might be the easiest solution in some cases. (I am glad comments can't be donwvoted :))