<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def handle_error(self, e):
 """ Resolve the problem about sometimes error message specified by programmer won't output to user. Flask-RESTFul's error handler handling format different exceptions has different behavior. If we raise an normal Exception, it will raise it again. If we report error by `restful.abort()`, likes `restful.abort(400, message="my_msg", custom_data="value")`, it will make a response like this: Status 400 Content {"message": "my_msg", "custom_data": "value"} The error message we specified was outputted. And if we raise an HTTPException, likes `from werkzeug.exceptions import BadRequest; raise BadRequest('my_msg')`, if will make a response too, but the error message specified by ourselves was lost: Status 400 Content {"status": 400, "message": "Bad Request"} The reason is, flask-restful always use the `data` attribute of HTTPException to generate response content. But, standard HTTPException object didn't has this attribute. So, we use this method to add it manually. Some reference material: Structure of exceptions raised by restful.abort():
 code: status code description: predefined error message for this status code data: ｛ 　　　　message: error message ｝ Structure of python2's standard Exception: message: error message Exceptions in python3 didn't has hte `message` attribute, but use `str(exception)` can get it's message. Structure of standard `werkzeug.exceptions.HTTPException` (same as BadRequest):
 code: status code name: the name correspondence to status code description: error message """

        if isinstance(e, HTTPException) and not hasattr(e, 'data'):
            e.data = dict(message=e.description)
        return super(ErrorHandledApi, self).handle_error(e)