| 1234567891011121314151617181920212223242526272829303132333435 | import apply from './_apply.js';import baseRest from './_baseRest.js';import isError from './isError.js';/** * Attempts to invoke `func`, returning either the result or the caught error * object. Any additional arguments are provided to `func` when it's invoked. * * @static * @memberOf _ * @since 3.0.0 * @category Util * @param {Function} func The function to attempt. * @param {...*} [args] The arguments to invoke `func` with. * @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 = []; * } */var attempt = baseRest(function(func, args) {  try {    return apply(func, undefined, args);  } catch (e) {    return isError(e) ? e : new Error(e);  }});export default attempt;
 |