When writing tests for services, you may sometimes want to use mock objects instead of real objects. In case you're using ActiveRecord and real objects, your tests may hit the database and slow down your suite.
At first glance it may seem ok to user exceptions for flow control, but it’s not. Some would say because “exceptions are expensive” (in terms of performance), what is true but this is not the only reason.