You can write an exception term directly to a varchar-type column in 
the database. Note that it will be rendered as text using ~p, 
and truncated if necessary - so you certainly can't read it out again 
and expect to get an exception! Example code:
catch(process_message(Message),
      Exception,
      {[],
      update(some_table, [status-'ERROR',
                          status_comment-Exception]),
      @ :: [some_table_primary_key-PrimaryKey]}).
FIXME: This code is specific to my usage of CQL