initial commit
This commit is contained in:
Executable
+72
@@ -0,0 +1,72 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright The Closure Library Authors.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* @fileoverview Provides a base class for custom Error objects such that the
|
||||
* stack is correctly maintained.
|
||||
*
|
||||
* You should never need to throw DebugError(msg) directly, Error(msg) is
|
||||
* sufficient.
|
||||
*/
|
||||
|
||||
goog.module('goog.debug.Error');
|
||||
goog.module.declareLegacyNamespace();
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Base class for custom error objects.
|
||||
* @param {*=} msg The message associated with the error.
|
||||
* @param {{
|
||||
* message: (?|undefined),
|
||||
* name: (?|undefined),
|
||||
* lineNumber: (?|undefined),
|
||||
* fileName: (?|undefined),
|
||||
* stack: (?|undefined),
|
||||
* cause: (?|undefined),
|
||||
* }=} cause The original error object to chain with.
|
||||
* @constructor
|
||||
* @extends {Error}
|
||||
*/
|
||||
function DebugError(msg = undefined, cause = undefined) {
|
||||
// Attempt to ensure there is a stack trace.
|
||||
if (Error.captureStackTrace) {
|
||||
Error.captureStackTrace(this, DebugError);
|
||||
} else {
|
||||
const stack = new Error().stack;
|
||||
if (stack) {
|
||||
/** @override */
|
||||
this.stack = stack;
|
||||
}
|
||||
}
|
||||
|
||||
if (msg) {
|
||||
/** @override */
|
||||
this.message = String(msg);
|
||||
}
|
||||
|
||||
if (cause !== undefined) {
|
||||
/** @type {?} */
|
||||
this.cause = cause;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether to report this error to the server. Setting this to false will
|
||||
* cause the error reporter to not report the error back to the server,
|
||||
* which can be useful if the client knows that the error has already been
|
||||
* logged on the server.
|
||||
* @type {boolean}
|
||||
*/
|
||||
this.reportErrorToServer = true;
|
||||
}
|
||||
goog.inherits(DebugError, Error);
|
||||
|
||||
|
||||
/** @override @type {string} */
|
||||
DebugError.prototype.name = 'CustomError';
|
||||
|
||||
|
||||
exports = DebugError;
|
||||
Reference in New Issue
Block a user