Chapter 12. back on your feet: Recovering from Failure
Every program encounters errors. You should plan for them.
Sometimes handling an error can be as simple as reporting it and exiting the program. But other errors may require additional action. You may need to close opened files or network connections, or otherwise clean up, so your program doesn’t leave a mess behind. In this chapter, we’ll show you how to defer cleanup actions so they happen even when there’s an error. We’ll also show you how to make your program panic in those (rare) situations where it’s appropriate, and how to recover afterward.
Reading numbers from a file, revisited
We’ve talked about handling errors in Go quite a lot. But the techniques we’ve shown thus far don’t work in every situation. Let’s look at one such scenario.
We want to create a program, sum.go, that reads float64 values from a text file, adds them all together, and prints their sum.
In Chapter 6 we created a GetFloats function that opened a text file, converted each line of the file to a float64 value, and returned those values as a slice.
Here, we’ve moved GetFloats to the main package and updated it to rely on two new functions, OpenFile and CloseFile, to open and close the text file.
We want to specify the name of the file we’re ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access