On Sat, May 18, 2002 at 10:25:50AM +0900, Christoph wrote:
> To appease your valid concerns it might be better to only catch
> ``ComparableErrors'' lets say
> 
> module Comparable
>     class Error < ArgumentError; end
>     def  <(other)
>         begin
>             (self <=> other) < 0 ? true : false
>         rescue  Error
>             false
>         end
>     end
>     # ...
> end

It just occurred to me that an alternative would be to use nil:

  module Comparable
    def <(other)
      result = self <=> other
      return result.nil? ? false : result
    end
  end

Thus <=> could have five possible results:
    -1       less than
     0       equal
     1       greater than
    nil      none of the above
  exception  an exceptional condition (error) occurred

Paul