首页/ 学科题库/ nodejs/ NodeJS错误处理与日志专题测试
nodejs 模拟试卷

NodeJS错误处理与日志专题测试

20 题 45 分钟 难度:★★
  1. 错误处理基础 - 错误捕获原则、Error对象使用、错误类型识别
  2. try/catch/finally - 同步错误捕获、finally执行顺序、return覆盖问题
  3. 异步错误处理 - 回调错误处理、Promise.catch、async/await异常捕获
  4. 全局未捕获异常 - uncaughtException、unhandledRejection、进程退出处理
  5. 日志记录基础 - console输出流、stdout/stderr区别、日志输出位置
  6. 日志级别管理 - debug/info/warn/error级别、级别过滤机制、生产环境策略

试卷习题(20 题)

参考答案在文末
判断题
1
判断题

console.log和console.info输出到stdout(标准输出),而console.error和console.warn输出到stderr(标准错误)。

A

对

B

错

2
判断题

在Node.js中,错误可以通过throw语句、回调函数的第一个参数、Promise.reject()等方式进行传播。

A

对

B

错

3
判断题

可以使用instanceof运算符来判断错误对象的类型,例如err instanceof TypeError。

A

对

B

错

单选题
4
单选题

Node.js回调风格API中,错误参数的位置和约定是什么?

A

错误作为回调函数的最后一个参数

B

错误作为回调函数的第一个参数

C

错误作为回调函数的第二个参数

D

不传递错误,而是直接抛出异常

5
单选题

在生产环境中,最常记录的日志级别是哪个?

A

debug

B

info

C

warn

D

error

6
单选题

以下代码的输出结果是什么?

JavaScript
function test() {
  try {
    return 'try返回值';
  } finally {
    return 'finally返回值';
  }
}
console.log(test());
A

'try返回值'

B

'finally返回值'

C

undefined

D

抛出错误

7
单选题

以下哪个process事件用于捕获未处理的Promise拒绝?

A

uncaughtException

B

unhandledRejection

C

rejectionHandled

D

exceptionCaught

8
单选题

Promise链中未被catch捕获的错误会如何处理?

A

错误会被自动忽略,程序继续运行

B

错误会沿着Promise链向下传递直到被catch捕获

C

错误会向上传递给调用者

D

错误会被.then的第二个参数自动捕获

9
单选题

以下哪个console方法可以打印对象的完整结构,包括嵌套属性?

A

console.log()

B

console.dir()

C

console.print()

D

console.show()

10
单选题

以下哪种方式可以正确创建自定义错误类,使其拥有正确的name属性和堆栈信息?

A

class MyError {} 直接定义空类

B

class MyError extends Error { constructor(msg) { super(msg); this.name = 'MyError'; } }

C

function MyError(msg) { this.message = msg; }

D

const MyError = { message: '错误' }

11
单选题

Node.js中错误处理的核心原则是什么?

A

所有错误都应该被忽略以保证程序运行

B

错误应该被捕获并妥善处理,避免进程意外终止

C

错误只应该用console.log打印,不需要其他处理

D

只有同步错误需要处理,异步错误会自动处理

12
单选题

关于try-catch-finally语句块的执行顺序,以下哪项描述正确?

A

finally块只有在catch块执行后才执行

B

finally块无论是否发生异常都会执行

C

finally块只在发生异常时执行

D

finally块在try块之前执行

13
单选题

Node.js中domain模块的主要作用是什么?

A

用于域名解析和网络请求

B

用于创建错误隔离区域,批量处理错误

C

用于创建子进程进行错误处理

D

用于设置全局错误日志级别

多选题
14
多选题

以下哪些是Node.js/JavaScript内置的错误类型?

A

TypeError

B

RangeError

C

NetworkError

D

SyntaxError

E

ReferenceError

15
多选题

关于全局未捕获异常处理的最佳实践,以下哪些说法正确?

A

uncaughtException处理后进程应尽快退出

B

全局异常处理仅用于日志记录,不应恢复进程运行

C

可以完全依赖全局异常处理,无需代码内错误处理

D

unhandledRejection事件必须在应用启动时注册

E

在uncaughtException中继续运行可能导致内存泄漏或数据损坏

16
多选题

使用async/await时,以下哪些方式可以正确处理异步错误?

A

用try-catch包裹await语句

B

在async函数内使用Promise.catch()

C

调用async函数后使用.catch()方法

D

在async函数内直接throw错误

E

用try-catch包裹async函数调用但不await

17
多选题

关于try-catch的正确使用,以下哪些做法是推荐的?

A

只包裹可能抛出异常的代码,不要包裹整段代码

B

捕获特定错误类型,而不是笼统的Error

C

在catch块中记录错误信息并进行适当处理

D

用try-catch捕获异步回调中的错误

E

空catch块忽略所有错误以保持代码简洁

填空题
18
填空题

Error对象的三个标准属性分别是:存储错误描述信息,存储错误类型名称,存储调用堆栈跟踪信息。系统错误还可能包含code属性存储系统错误代码。

19
填空题

在Node.js中,使用process.on('')捕获未处理的同步异常,使用process.on('')捕获未处理的Promise拒绝。这两个事件应在应用注册,且主要用于日志记录,处理后建议调用process.exit退出进程。

20
填空题

try-catch-finally语句中,块包含可能抛出异常的代码,块用于捕获并处理异常,块无论是否发生异常都会执行,常用于资源清理操作。

参考答案
1.正确 2.正确 3.正确 4.B 5.D 6.B 7.B 8.B 9.B 10.B 11.B 12.B 13.B 14.A;B;D;E 15.A;B;D;E 16.A;B;C;D 17.A;B;C 18.message;name;stack 19.uncaughtException;unhandledRejection;启动时 20.try;catch;finally
想在手机上在线作答这套卷子?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别二维码,即可限时作答并自动判分。
了解产品 App
← 上一套 NodeJS进程与线程管理专题测试 下一套 → NodeJS高级技能认证