CNode

egg中的错误处理疑惑

问答
Aacodercat发布于8 年前最后回复7 年前7 回复7076 浏览0 收藏

在业务中抛出js throw new Error('response status is not 200'); 这种错误的时候,在捕获的时候必须全局捕获处理,这样好像不太友好,框架本身有对这块做处理或者提供一些功能吗。或者由开发者本身来自定义一些错误然后抛出吗

查看回复

回复 (7)

A
acodercat#1·8 年前

@atian25

A
atian25#2·8 年前

不太理解你的问题

  • egg-onerror 是框架做兜底的
  • 你自己的处理,可以在 Controller / Service 等地方自己 catch
  • 或者通过 Middleware 结合 match 来做范围的 catch
  • 另外,也可以关注下我们这个: [RFC] 应用自定义 4xx 和 5xx 的方案
Y
yuezm#3·8 年前

我们这是用middleware来做的,匹配errcode,抛出不同的错误

A
atian25#4·8 年前
引用 yuezm我们这是用middleware来做的,匹配errcode,抛出不同的错误

@yuezm 嗯,这其实属于错误分离和处理了,可以参与下我上面的给的链接的讨论

image.png

A
acodercat#5·7 年前

@atian25 请问怎么在errorHandler中间件中捕获this.ctx.throw抛出的异常呢

A
atian25#6·7 年前

try catch 就能收获到

A
acodercat#7·7 年前

它属于哪个类呢,我instanceof不出来

参与回复
登录后即可参与回复。登录