全部学科
Python全栈
python
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级别、级别过滤机制、生产环境策略
1
单选题

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

A

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

B

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

C

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

D

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

2
判断题

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

A

B

3
单选题

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

A

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

B

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

C

finally块只在发生异常时执行

D

finally块在try块之前执行

4
单选题

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

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

'try返回值'

B

'finally返回值'

C

undefined

D

抛出错误

5
填空题

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

6
多选题

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

A

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

B

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

C

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

D

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

E

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

7
单选题

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

A

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

B

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

C

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

D

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

8
单选题

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

A

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

B

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

C

错误会向上传递给调用者

D

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

9
多选题

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

A

用try-catch包裹await语句

B

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

C

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

D

在async函数内直接throw错误

E

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

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/JavaScript内置的错误类型?

A

TypeError

B

RangeError

C

NetworkError

D

SyntaxError

E

ReferenceError

12
判断题

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

A

B

13
填空题

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

14
单选题

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

A

uncaughtException

B

unhandledRejection

C

rejectionHandled

D

exceptionCaught

15
单选题

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

A

用于域名解析和网络请求

B

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

C

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

D

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

16
多选题

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

A

uncaughtException处理后进程应尽快退出

B

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

C

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

D

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

E

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

17
填空题

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

18
单选题

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

A

console.log()

B

console.dir()

C

console.print()

D

console.show()

19
判断题

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

A

B

20
单选题

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

A

debug

B

info

C

warn

D

error

← 上一个试卷 NodeJS进程与线程管理专题测试
下一个试卷 → NodeJS高级技能认证

📝 发现内容有误?点击此处直接编辑

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库