Spaces:
Runtime error
Runtime error
| var apply = require('./_apply'), | |
| baseRest = require('./_baseRest'), | |
| isError = require('./isError'); | |
| /** | |
| * 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); | |
| } | |
| }); | |
| module.exports = attempt; | |