Skip to content

Commit fb77a4a

Browse files
committed
Add error handling examples
1 parent 0a0b530 commit fb77a4a

File tree

6 files changed

+250
-0
lines changed

6 files changed

+250
-0
lines changed

.eslintrc.yml

Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
env:
2+
es6: true
3+
node: true
4+
extends: 'eslint:recommended'
5+
globals:
6+
api: false
7+
rules:
8+
indent:
9+
- error
10+
- 2
11+
- SwitchCase: 1
12+
VariableDeclarator:
13+
var: 2
14+
let: 2
15+
const: 3
16+
MemberExpression: 1
17+
linebreak-style:
18+
- error
19+
- unix
20+
quotes:
21+
- error
22+
- single
23+
semi:
24+
- error
25+
- always
26+
eqeqeq:
27+
- error
28+
- always
29+
no-loop-func:
30+
- error
31+
strict:
32+
- error
33+
- global
34+
block-spacing:
35+
- error
36+
- always
37+
brace-style:
38+
- error
39+
- 1tbs
40+
- allowSingleLine: true
41+
camelcase:
42+
- error
43+
comma-style:
44+
- error
45+
- last
46+
comma-spacing:
47+
- error
48+
- before: false
49+
after: true
50+
eol-last:
51+
- error
52+
func-call-spacing:
53+
- error
54+
- never
55+
key-spacing:
56+
- error
57+
- beforeColon: false
58+
afterColon: true
59+
mode: minimum
60+
keyword-spacing:
61+
- error
62+
- before: true
63+
after: true
64+
overrides:
65+
function:
66+
after: false
67+
max-len:
68+
- error
69+
- code: 80
70+
ignoreUrls: true
71+
max-nested-callbacks:
72+
- error
73+
- max: 7
74+
new-cap:
75+
- error
76+
- newIsCap: true
77+
capIsNew: true
78+
properties: true
79+
new-parens:
80+
- error
81+
no-lonely-if:
82+
- error
83+
no-trailing-spaces:
84+
- error
85+
no-unneeded-ternary:
86+
- error
87+
no-whitespace-before-property:
88+
- error
89+
object-curly-spacing:
90+
- error
91+
- always
92+
operator-assignment:
93+
- error
94+
- always
95+
operator-linebreak:
96+
- error
97+
- after
98+
semi-spacing:
99+
- error
100+
- before: false
101+
after: true
102+
space-before-blocks:
103+
- error
104+
- always
105+
space-before-function-paren:
106+
- error
107+
- never
108+
space-in-parens:
109+
- error
110+
- never
111+
space-infix-ops:
112+
- error
113+
space-unary-ops:
114+
- error
115+
- words: true
116+
nonwords: false
117+
overrides:
118+
typeof: false
119+
no-unreachable:
120+
- error
121+
no-global-assign:
122+
- error
123+
no-self-compare:
124+
- error
125+
no-unmodified-loop-condition:
126+
- error
127+
no-constant-condition:
128+
- error
129+
- checkLoops: false
130+
no-console:
131+
- off
132+
no-useless-concat:
133+
- error
134+
no-useless-escape:
135+
- error
136+
no-shadow-restricted-names:
137+
- error
138+
no-use-before-define:
139+
- error
140+
- functions: false
141+
arrow-body-style:
142+
- error
143+
- as-needed
144+
arrow-spacing:
145+
- error
146+
no-confusing-arrow:
147+
- error
148+
- allowParens: true
149+
no-useless-computed-key:
150+
- error
151+
no-useless-rename:
152+
- error
153+
no-var:
154+
- error
155+
object-shorthand:
156+
- error
157+
- always
158+
prefer-arrow-callback:
159+
- error
160+
prefer-const:
161+
- error
162+
prefer-numeric-literals:
163+
- error
164+
prefer-rest-params:
165+
- error
166+
prefer-spread:
167+
- error
168+
rest-spread-spacing:
169+
- error
170+
- never
171+
template-curly-spacing:
172+
- error
173+
- never

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
node_modules
2+
*.log
3+
.DS_Store

JavaScript/1-sync-try.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
'use strict';
2+
3+
function sum(a, b) {
4+
if (typeof(a) === 'number' && typeof(b) === 'number') {
5+
return a + b;
6+
} else {
7+
throw new Error('a and b should be numbers');
8+
}
9+
}
10+
11+
try {
12+
console.log(sum(2, 3));
13+
} catch (e) {
14+
console.log(e.message);
15+
}
16+
17+
try {
18+
console.log(sum(7, 'A'));
19+
} catch (e) {
20+
console.log(e.message);
21+
}

JavaScript/2-sync-tuple.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
'use strict';
2+
3+
function fn(a, b) {
4+
if (typeof(a) === 'number' && typeof(b) === 'number') {
5+
return [null, a + b];
6+
} else {
7+
return [new Error('a and b should be numbers')];
8+
}
9+
}
10+
11+
console.log(fn(2, 3));
12+
console.log(fn(7, 'A'));

JavaScript/3-async.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
'use strict';
2+
3+
function fn2(a, b, callback) {
4+
if (typeof(a) === 'number' && typeof(b) === 'number') {
5+
callback(null, a + b);
6+
} else {
7+
callback(new Error('a and b should be numbers'));
8+
}
9+
}
10+
11+
fn2(2, 3, (err, result) => {
12+
if (err) {
13+
console.log(err.message);
14+
return;
15+
}
16+
console.log(result);
17+
});
18+
19+
fn2(7, 'A', (err, result) => {
20+
if (err) {
21+
console.log(err.message);
22+
return;
23+
}
24+
console.log(result);
25+
});

JavaScript/4-process.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
'use strict';
2+
3+
process.on('uncaughtException', (e) => {
4+
console.log('on uncaughtException: ' + e.message);
5+
});
6+
7+
function sum(a, b) {
8+
if (typeof(a) === 'number' && typeof(b) === 'number') {
9+
return a + b;
10+
} else {
11+
throw new Error('a and b should be numbers');
12+
}
13+
}
14+
15+
console.log(sum(2, 3));
16+
console.log(sum(7, 'A'));

0 commit comments

Comments
 (0)