nodejs 异常捕获
由于nodejs是非阻塞单进程单线程的,一旦nodejs抛出异常,整个服务就会停掉。服务将会非常不稳定。
错误异常有两种场景的出现,一种是代码运行中throw new error没有被捕获,另一种是Promise的失败回调函数,没有对应的reject回调函数处理,针对这两种情况Nodejs都有默认的统一处理方式,就是给整个进程process对象监听相应的错误事件。
process.on('uncaughtException',function(err){}) //监听未捕获的异常process.on('unhandledRejection',function(err,promise){}) //监听Promise没有被捕获的失败函数
- 使程序鲁棒,在有可能出现异常的地方,全部使用try { } catch(){ }进行嵌套。
- express作为nodejs比较常用的框架,其实nodejs自己也有一定的异常错误捕获机制
// Express' errorHandler
function errorHandler(err, req, res, next) {
console.error(err.stack);
}
app.use(errorHandler);
- 使用domain模块,先下载domain, “npm install domain”
//Domain捕获异常
app.use(function(req, res, next) {
var domain = createDomain();
domain.on('error', function(err) {
// alternative: next(err)
console.log(err.stack);
res.statusCode = 500;
res.end(err.message + '\n');
domain.dispose();
});
domain.enter();
next();
});
nodejs 异常捕获相关推荐
- domain: node.js的异常捕获利器
众所周知,异常捕获是保障服务健壮性常用的手段,node.js也自然支持这一特性.但node.js异步.基于消息的编程方式给异常捕获带来一些困难,请看下面的例子: process.on('uncaugh ...
- Spring Boot配置全局异常捕获
1 SpringBoot配置全局的异常捕获 项目的说明 配置thymeleaf作为视图模板 ExceptionController.java模拟测试用 MyAjaxExceptionHandler.j ...
- 简单介绍Go语言错误处理异常捕获+异常抛出
这篇文章主要介绍了Go语言错误处理异常捕获和异常抛出,Go语言的作者认为java等语言的错误处理底层实现较为复杂,就实现了函数可以返回错误类型以及简单的异常捕获,虽然简单但是也非常精妙,大大的提高了运 ...
- 用c实现跨平台异常捕获机制
为什么80%的码农都做不了架构师?>>> TBOX封装了一套跨平台的异常捕获实现,来模拟windows的seh异常处理功能,而且是线程安全的. 在linux/mac下的实现 使 ...
- python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03
python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03 参考文章: (1)python网络编程-异常处理-异常捕获-抛出异常-断言-自 ...
- Java多层的异常捕获
Java多层的异常捕获 参考文章: (1)Java多层的异常捕获 (2)https://www.cnblogs.com/somedayLi/p/7847136.html 备忘一下.
- ORACLE 存储过程异常捕获并抛出
ORACLE 存储过程异常捕获并抛出 参考文章: (1)ORACLE 存储过程异常捕获并抛出 (2)https://www.cnblogs.com/wdw31210/p/7009731.html 备忘 ...
- SQLServer异常捕获
SQLServer异常捕获 参考文章: (1)SQLServer异常捕获 (2)https://www.cnblogs.com/OliverQin/p/4994717.html 备忘一下.
- Spring boot异常统一处理方法:@ControllerAdvice注解的使用、全局异常捕获、自定义异常捕获
Spring boot异常统一处理方法:@ControllerAdvice注解的使用.全局异常捕获.自定义异常捕获 参考文章: (1)Spring boot异常统一处理方法:@ControllerAd ...
最新文章
- React 项目---class 创建组件 (11)
- IBM X System ServerGuide 8.41 服务器 系统安装引导盘
- 为什么C++(感谢waterwalk翻译)
- Invocation of init method failed; nested exception is org.hibernate.InvalidMappingException: Could n
- OpenGL sparsetexture稀疏纹理的实例
- 基于Win32Api创建窗口程序
- python二分法编程_python基础18——二分法面向过程匿名函数
- 攻防世界web新手区解题 /cookie / disabled_button / weak_auth
- 暂且解决INSTALL_FAILED_SHARED_USER_INCOMPATIBLE错误
- 使用nginx反向代理解决前端跨域问题
- 制作1G的U盘启动盘
- 复制iPhone端百度网盘下载好的视频到电脑(Mac / Windows)- iOS 12.4
- Windows用户名中文修改英文无感实现操作方法
- 百度离线地图服务器搭建
- Python unpickle 命令执行漏洞复现总结
- 关于域名的说法,一级,二级
- luooj1559最强阵容加强版
- Superpro5000的使用经验小结
- VC 格式化代码快捷键
- PNETLAB中可以导入的交换机、防火墙等设备镜像
热门文章
- echarts中国旅客迁徙地图
- 华为OD机试真题 Java 实现【投篮大赛】【2023Q1 100分】
- form action=./ 或者为form action=/ 的提交路径
- 大学毕业……向新的方向奋斗
- 动物园(虚函数与多态)
- oblog为何继续采用js+html
- 电子计算机承重,编辑暴力实测 PC主板能够负重多少硬件?
- terracotta_具有Spring Web Flow和Terracotta的Spring Web应用程序
- 【BZOJ 1862】 [Zjoi2006]GameZ游戏排名系统
- 【2021-2022 春学期】人工智能-作业1:PyTorch实现反向传播