Skip to Content
Head First Ruby
book

Head First Ruby

by Jay McGavren
August 2015
Beginner
572 pages
13h 48m
English
O'Reilly Media, Inc.
Content preview from Head First Ruby

Chapter 12. Exceptions: Handling the Unexpected

image with no caption

In the real world, the unexpected happens. Someone could delete the file your program is trying to load, or the server your program is trying to contact could go down. Your code could check for these exceptional situations, but those checks would be mixed in with the code that handles normal operation. (And that would be a big, unreadable mess.)

This chapter will teach you all about Ruby’s exception handling, which lets you write code to handle the unexpected, and keep it separate from your regular code.

Don’t use method return values for error messages

There’s always a risk that users will make mistakes when calling methods in your code. Take this simple class to simulate an oven, for example. Users create a new instance, call its turn_on method, set its contents attribute to the dish they want to cook (we could only afford a small oven that holds one dish at a time), and then call the bake method to have their dish cooked to a nice golden brown.

But users might forget to turn the oven on before calling bake. They could also call bake while the contents attribute is set to nil. So we’ve built in some error handling for both of those scenarios. Instead of returning the cooked food item, it will return an error string.

image with no caption

If we remember to turn ...

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

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

The Ruby Programming Language

The Ruby Programming Language

David Flanagan, Yukihiro Matsumoto
Beginning Ruby 3: From Beginner to Pro

Beginning Ruby 3: From Beginner to Pro

Carleton DiLeo, Peter Cooper

Publisher Resources

ISBN: 9781449372644Errata Page