CNode

node经常会遇到程序异常,整个进程就会崩掉,有没有很好的捕获异常的package

问答
Wweierbufan发布于10 年前最后回复10 年前12 回复7225 浏览0 收藏

话说使用try catch在同步的时候会影响性能,在异步的时候不可用。大神们有没有好的package,能很好的解决这个问题的。

查看回复

回复 (12)

H
HarryHong#1·10 年前

好好看看8楼那个链接

经验:

  1. code写好点,各种parse error好好自己捕捉
  2. 做好Error monitor, 如果进程倒了要能看到log和stack trace
  3. 应用ls “我没啥好办法。。。服务跪了就重启。。。”

其实有个包 我是在用的 不过不推荐 https://github.com/CrabDude/trycatch 可以做一个大的入口 然后放在那里卡一下,production可以用下,最终目的是好好填坑...

F
fengmk2#2·10 年前
引用 weierbufan@ncuzp 其实我就是想找有没有什么package能够很好的处理异常。。。。

@weierbufan 最好的还是将项目的自动化测试补起来吧。既然异常退出了,肯定是代码出bug了。多进程保护只是亡羊补牢,只是给你尽快修bug缓冲一点点时间而已。生产环境出行worker进程异常退出重启,都是最严重的报警。 自豪地采用 CNodeJS ionic

R
reverland#5·10 年前

我觉得吧,谨慎引入第三方模块,保持一致性,守护进程大法好。。。

I
i5ting#6·10 年前

没什么特别好的办法

  • 流程上promise/a+处理异常就好了
  • pm2起多个实例,一个挂掉,不影响其他的
  • 1个服务器里最好只起1个pm2 app实例,不然如果一个挂了,会产生雪崩效应(docker是个好东西)
W
weierbufan#7·10 年前
引用 reverland我觉得吧,谨慎引入第三方模块,保持一致性,守护进程大法好。。。

@reverland 怎么做才能更好的不让异常崩了整个进程,或者说怎么守护好进程呢???求解

N
ncuzp#9·10 年前

这个不是说有没有包就可以解决的,关键写代码的时候要处理好异常情况,还有就是i5ting提到的,起多个实例,pm2兼具守护进程的作用

R
reverland#10·10 年前
参与回复
登录后即可参与回复。登录