forked from 418sec/js-data
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patherrors.js
50 lines (47 loc) · 1.26 KB
/
errors.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/**
* Thrown during a method call when an argument passed into the method is invalid.
*/
class IllegalArgumentError extends Error {
constructor (message) {
super()
if (typeof Error.captureStackTrace === 'function') {
Error.captureStackTrace(this, this.constructor)
}
this.type = this.constructor.name
this.message = message
}
}
/**
* Thrown when an invariant is violated or unrecoverable error is encountered during execution.
*/
class RuntimeError extends Error {
constructor (message) {
super()
if (typeof Error.captureStackTrace === 'function') {
Error.captureStackTrace(this, this.constructor)
}
this.type = this.constructor.name
this.message = message
}
}
/**
* Thrown when attempting to access or work with a non-existent resource.
*/
class NonexistentResourceError extends Error {
constructor (resourceName) {
super()
if (typeof Error.captureStackTrace === 'function') {
Error.captureStackTrace(this, this.constructor)
}
this.type = this.constructor.name
this.message = `${resourceName} is not a registered resource!`
}
}
export default {
IllegalArgumentError,
IA: IllegalArgumentError,
RuntimeError,
R: RuntimeError,
NonexistentResourceError,
NER: NonexistentResourceError
}