Skip to content

Commit b5f2dde

Browse files
committed
docs(features): edit error/finally
1 parent 1b5a35d commit b5f2dde

File tree

1 file changed

+25
-6
lines changed

1 file changed

+25
-6
lines changed

docs/features/error.md

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -315,28 +315,29 @@ function cleansUp() {
315315

316316
cleansUp()
317317
// 完成清理工作
318-
// Error: 出错了……
318+
// Uncaught Error: 出错了……
319+
// at cleansUp (<anonymous>:3:11)
320+
// at <anonymous>:10:1
319321
```
320322

321-
上面代码中,由于没有`catch`语句块,所以错误没有捕获。执行`finally`代码块以后,程序就中断在错误抛出的地方
323+
上面代码中,由于没有`catch`语句块,一旦发生错误,代码就会中断执行。中断执行之前,会先执行`finally`代码块,然后再向用户提示报错信息
322324

323325
```javascript
324326
function idle(x) {
325327
try {
326328
console.log(x);
327329
return 'result';
328330
} finally {
329-
console.log("FINALLY");
331+
console.log('FINALLY');
330332
}
331333
}
332334

333335
idle('hello')
334336
// hello
335337
// FINALLY
336-
// "result"
337338
```
338339

339-
上面代码说明`try`代码块没有发生错误,而且里面还包括`return`语句,但是`finally`代码块依然会执行。注意,只有在其执行完毕后,才会显示`return`语句的值
340+
上面代码中`try`代码块没有发生错误,而且里面还包括`return`语句,但是`finally`代码块依然会执行。而且,这个函数的返回值还是`result`
340341

341342
下面的例子说明,`return`语句的执行是排在`finally`代码之前,只是等`finally`代码执行完毕后才返回。
342343

@@ -356,7 +357,7 @@ count
356357
// 1
357358
```
358359

359-
上面代码说明,`return`语句的`count`的值,是在`finally`代码块运行之前就获取了。
360+
上面代码说明,`return`语句里面的`count`的值,是在`finally`代码块运行之前就获取了。
360361

361362
下面是`finally`代码块用法的典型场景。
362363

@@ -431,6 +432,24 @@ try {
431432

432433
上面代码中,进入`catch`代码块之后,一遇到`throw`语句,就会去执行`finally`代码块,其中有`return false`语句,因此就直接返回了,不再会回去执行`catch`代码块剩下的部分了。
433434

435+
```javascript
436+
try {
437+
try {
438+
cosnole.log('Hello world!'); // 报错
439+
}
440+
finally {
441+
console.log('Finally');
442+
}
443+
console.log('Will I run?');
444+
} catch(error) {
445+
console.error(error.message);
446+
}
447+
// Finally
448+
// cosnole is not defined
449+
```
450+
451+
上面代码中,`try`里面还有一个`try`。内层的`try`报错,这时会执行内层的`finally`代码块,然后抛出错误,被外层的`catch`捕获。
452+
434453
## 参考连接
435454

436455
- Jani Hartikainen, [JavaScript Errors and How to Fix Them](http://davidwalsh.name/fix-javascript-errors)

0 commit comments

Comments
 (0)