Summary Exceptions are hiding everywhere in Ruby Writing code that works correctly in the presence of exceptions is not easy, but is possible Some important guidelines: Use ensure blocks whenever possible Don't allow ensure blocks to raise new exceptions Write methods that only modify state when all other work is done. Exception-safety is not without overhead Exception-safety in extensions can be partly solved by translating exceptions