Reputation: 1017
The program requires the file to run, but if for any myriad number of reasons it can't be found or isn't readable, etc - what's the cleanest way to fail out of the program?
Upvotes: 4
Views: 345
Reputation: 3639
I'm thinking of these three steps:
First: print out the name of the file with a suitable error message.
Second: clean up the resources which your program has taken. free memory, close pipes, close sockets, delete temporary files, release mutexes ... .
Third: Terminate using exit()
.
Upvotes: 0
Reputation: 15144
Fail as you would fail in other cases:
strerror()
and perror()
help you in verbalizing the failure reason.Upvotes: 7
Reputation: 140856
This type of error message should always include:
strerror(errno)
on Unix, or the rather more convoluted Windows equivalent.Upvotes: 1
Reputation: 116306
If the file is required, and a missing file is abnormal, I would throw an exception. That would then be handled on a higher level, where it is possible to decide what to do about the problem. If the app absolutely can't run without the file in question, I would just terminate it gracefully with an appropriate error message to show the exact problem to its users.
And of course, I would strive to check early for this file, before allocating other resources. This way there is less unnecessary stuff done, and less unused resources to free upon abnormal termination.
Upvotes: 4