I think for dynamic languages exceptions are just a fact of life and it doesn't really make much sense to worry about them, you can't rely on the type system to remind the programmer of all the cases they need to handle.
So thinking in terms of failure handling is the way to go.
So thinking in terms of failure handling is the way to go.