Created
October 10, 2019 05:39
-
-
Save jackbrown/c87cec740cbd25d709a83a7694fc473f to your computer and use it in GitHub Desktop.
custom error implementation code dump
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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