function _tryFunctionWithArgs (func, args, mappingFnName, callbackName) {
  try {
    return func(...args)
  } catch (err) {
    _createCallbackError(err, args, mappingFnName, callbackName)
  }
}
@param {function} func The selected function taken from one of the signatures of the callback function
@param {Array} args List with arguments to apply to the selected signature
@param {string} mappingFnName the name of the function that is using the callback
@param {string} callbackName the name of the callback function
@returns {*} Returns the return value of the invoked signature
@throws {TypeError} Throws an error when no matching signature was found