<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def with_details(self, key, value):
 """ Sets a parameter for additional error details. This details can be used to restore error description in other languages. This method returns reference to this exception to implement Builder pattern to chain additional calls. :param key: a details parameter name :param value: a details parameter name :return: this exception object """

        self.details = self.details if self.details != None else {}
        self.details[key] = value
        return self