
Polished Ruby Programming
By :

In programming languages that do not support exceptions, errors are generally handled by using a return value that indicates failure. Ruby itself is written in C, and in C, functions that can fail will often use a return value that is zero on success, and non-zero on failure. While Ruby has exceptions, there are instances where methods can fail and this will occasionally return a value instead of raising an exception, even in cases where other programming languages raise an exception.
For example, in Python, if you have a hash (called a dictionary in Python), and you try to access a member in the hash that doesn't exist, you get an exception raised:
# Python code: {'a': 2}['b'] # KeyError: 'b'
Ruby takes a different approach in this case, returning nil
:
{'a'=>2}['b'] # => nil
This shows the two different philosophies between the languages. In Ruby, it is expected that when...