   _throw_returns_must_be_after_expects_or_args: ->
     throw ".returns() must be called immediately after .expects() or .args()"
     
+  _throw_throws_usage: ->
+    throw "you need to supply an argument to .throws(), e.g. my_mock.expects('my_method').throws('an error')"
+    
+  _throw_throws_must_be_after_expects_or_args: ->
+    throw ".throws() must be called immediately after .expects() or .args()"
+    
   _throw_unknown_expectation: (signature) ->
     throw "#{signature} does not match any expectations"
 

    @_throw_returns_usage() unless value?
    @_throw_returns_must_be_after_expects_or_args() unless @_is_state_in("expects", "args")
      
  _check_if_duplicate_signature: (method_name, args...) ->
    @_throw_duplicate_expectation("#{method_name}(#{args})") if @_find_signature(method_name, args...)
        

  #   console.log error               # prints "an error"
  #
  throws: (error) ->
    @_check_throws_usage(error)
    @_current_signature().throws = error
    @_set_state("throws")
    @
