see test case -- its very easy to make a custom exception unpickleable -- just add a new positional argument:

    class MyNotUnpickleableError(Exception):
        def __init__(self, message, new_pos_args_break_pickle):
            super(MyNotUnpickleableError, self).__init__(message)
            self.new_pos_args_break_pickle = new_pos_args_break_pickle

    e = MyNotUnpickleableError('foo', 'bar')
    s = pickle.dumps(e)
    # raises TypeError
    pickle.loads(s)