Scala has several ways to deal with error handling, and often times people get confused as to when to use what. This post hopes to address that. Let me count the ways. Option People coming to Scala from Java-like languages are often told Option is a replacement for null or exception throwing. Say we have a function that creates some sort of interval, but only allows intervals where the lower bound comes first. class Interval(val low: Int, val high: Int) { if (low > high) throw new Exception("...