title: How to find the column name when using a custom column type in sqlalchemy
body: <p>I am trying to define my own column type in sqlalchemy:</p>
  
  <pre><code>class NonNegativeInt(TypeDecorator):
      impl = Integer
  
      def process_bind_param(self, value, dialect):
          if value is not None:
              if not isinstance(value, int) or value &lt; 0:
                  raise TypeError('Expect non-negative integer, find %s instead.' % value)
          return value
  
  class Game(Model):
      score = Column(NonNegativeInt, default=0)
  </code></pre>
  
  <p>When I try to bind a negative integer to a NonNegativeInt column, e.g. score, it raises an error as expected:</p>
  
  <pre><code>sqlalchemy.exc.StatementError: (exceptions.TypeError) Expect non-negative integer, find -1 instead.
  </code></pre>
  
  <p>However, it dose not specify the name of the column, therefore it is not easy to debug when there are a lot of columns. When using the original Integer type, I got more specific error message:</p>
  
  <pre><code>sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1366, u"Incorrect integer value: 'aaaa' for column 'score' at row 1")
  </code></pre>
  
  <p>How can I find the name of the column with error (e.g. score)? Moreover, is it possible to raise error when assigning a wrong value: <code>game.score = -1</code>, instead of when committing?</p>