Skip to content

Instantly share code, notes, and snippets.

@jackbrown
Created October 10, 2019 05:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jackbrown/c87cec740cbd25d709a83a7694fc473f to your computer and use it in GitHub Desktop.
Save jackbrown/c87cec740cbd25d709a83a7694fc473f to your computer and use it in GitHub Desktop.
custom error implementation code dump
const log = {
safeError: (...args) => console.log(...args)
};
function ResourceError({ name, message, component }, errorOverride) {
this.name = name;
this.message = message;
const temp = new Error();
this.stack = temp.stack;
if (errorOverride) {
this.name = errorOverride.name ? errorOverride.name : name;
this.message = errorOverride.message ? errorOverride.message : message;
if (errorOverride.stack) {
this.stack = errorOverride.stack;
}
}
log.safeError(component, message, errorOverride);
}
ResourceError.prototype = Object.create(Error.prototype);
ResourceError.prototype.constructor = ResourceError;
class MyNewError extends Error {
constructor({ name, message, component }, errorOverride) {
super();
this.name = name;
this.message = message;
if (errorOverride) {
this.name = errorOverride.name ? errorOverride.name : name;
this.message = errorOverride.message ? errorOverride.message : message;
if (errorOverride.stack) {
this.stack = errorOverride.stack;
}
}
log.safeError(component, message, errorOverride);
}
}
function makeError() {
const one = new ResourceError({
name: "my",
message: "resource",
component: "error"
});
const one_one = new ResourceError(
{
name: "my",
message: "resource",
component: "error"
},
new Error("something new and bad")
);
const two = new MyNewError({
name: "my",
message: "resource",
component: "error"
});
const three = new MyNewError(
{
name: "my",
message: "resource",
component: "error"
},
new Error("something new and bad")
);
throw three
}
makeError();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment