def execute(self, logger: Logger, options: Dict[str, Dict[str, Any]]) -> T:
try:<EOL><INDENT>res = self._execute(logger, options)<EOL><DEDENT>except Exception as e:<EOL><INDENT>raise ParsingException.create_for_caught_error(self.parser, self.obj_type, self.obj_on_fs_to_parse, e,<EOL>options)<EOL><DEDENT>if res is not None:<EOL><INDENT>if robust_isinstance(res, self.obj_type):<EOL><INDENT>return res<EOL><DEDENT><DEDENT>raise WrongTypeCreatedError.create_for_wrong_result_type(self.parser, self.obj_type, self.obj_on_fs_to_parse,<EOL>res, options)<EOL>
Called to parse the object as described in this parsing plan, using the provided arguments for the parser.
* Exceptions are caught and wrapped into ParsingException
* If result does not match expected type, an error is thrown

:param logger: the logger to use during parsing (optional: None is supported)
:param options: a dictionary of option sets. Each option set is identified with an id in the dictionary.
:return: