function unescape(string) {
      string = baseToString(string);
      return (string && reHasEscapedHtml.test(string))
        ? string.replace(reEscapedHtml, unescapeHtmlChar)
        : string;
    }
Attempts to invoke `func`, returning either the result or the caught error
object. Any additional arguments are provided to `func` when it is invoked.

@static
@memberOf _
@category Utility
@param {Function} func The function to attempt.
@returns {*} Returns the `func` result or error object.
@example

// avoid throwing errors for invalid selectors
var elements = _.attempt(function(selector) {
  return document.querySelectorAll(selector);
}, '>_>');

if (_.isError(elements)) {
  elements = [];
}