iteration

Alternatives to Exceptions

Episode Summary

This week we talk about sideband data, multiple return values, and output parameters.

Episode Notes

Alternatives to Exceptions



Examples of when to not "fail fast":

  1. test suites

Sometimes you just need a way to proceed through steps and have the system tell you what parts succeeded and what parts failed

Sideband data

When communication failures without resorting to exceptions, we need a sideband: a secondary channel of communication for reporting meta-information about the status and disposition of a process.

Multiple return values

hehe, this reminds me of stuff I do in javascript

Or you can use an open struct

def foo
  OpenStruct.new(:result => 42, :status => :success)
end

Output parameters

Caller-supplied fallback strategy

Picks

JP:

John:

Slack Video Calling + Collaboration