UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

53 lines 2.07 kB
/** * Error is a class that enhances the debugging and error handling process. Rather than returning a generic * [JavaScript error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error), * this Error returns a standardized error object with several properties. The error class can be useful * in many scenarios, such as working with promises, the [esriRequest](https://developers.arcgis.com/javascript/latest/references/core/request/) module, and many different layers and widgets. * * @since 4.5 * @see [request](https://developers.arcgis.com/javascript/latest/references/core/request/) * @example * button.on("click", function() { * esriRequest(url, options).then(function(response) { * // do something useful * }).catch(function(error){ * console.log("informative error message: ", error.message); * }); * }); */ export default class Error<T = any> { constructor(name: string, message: string, details?: T); /** * The details object provides additional details specific to the error, * giving more information about why the error was raised. For example, the details object for * [esriRequest](https://developers.arcgis.com/javascript/latest/references/core/request/types/#RequestErrorDetails) includes * additional information to help the developer diagnose issues with a problematic request. * * @example * someAsyncFunction.then(callback) * .catch(function(error){ * console.log("Error details: ", error.details); * }); */ details?: T | null; /** * Message describing the error. * * @example * someAsyncFunction.then(callback) * .catch(function(error){ * console.log("Error message: ", error.message); * }); */ readonly message: string; /** * A unique error name. This can be used to map to a localized error message to present to the user. * * @example * someAsyncFunction.then(callback) * .catch(function(error){ * console.log("Error name: ", error.name); * }); */ readonly name: string; }