code: public Object blockWithException(Object key) throws Exception
    {
      Object value = block(key);
  
      if(value instanceof Exception)
      {
        Exception exception = (Exception) value;
        throw exception;
      }
  
      return value;
    }
docs: This method is usually called from within a mock object to execute the call associated
  to the given key. It will block until another thread calls one of the <code>unblock</code>
  method with the object to return. If the object to return is an exception it will throw
  it instead!
  
  @param key same key as used in <code>unblock</code>
  @return the object provided to <code>unblock</code>