Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

koa逻辑错误需要抛出异常吗?

$
0
0

比如在业务层中添加用户,会有用户查重处理,如果发现有重复数据,需要告诉上一层。

看了很多koa错误处理的文章,大多都建议直接在代码中抛出自定义异常,然后在中间件统一捕获处理。但是在程序中很多非程序性错误,例如上面的查重,上一层可能需要有其他处理,如果抛出了异常则需要在上一层捕获。 但是这样同样会捕获到程序性异常,例如数据库连接失败之类的。这样一来我们就需要在catch中判断类型是否是自定义异常,再做对应的处理,如果不是自定义异常再抛出。

这样的处理方式我总感觉挺别扭的,逻辑错误和程序错误感觉搅在一堆了。之前我的做法是在业务层统一返回一个ResultModel,里面包含了对应的正确码或者 逻辑错误码。这种方式避免了程序错误和逻辑错误混淆,程序错误同样在中间件统一处理,逻辑处理则按正常流程处理。

请问各位童鞋觉得这种处理方式是否正确?有更好的处理方式吗?


Viewing all articles
Browse latest Browse all 14821

Trending Articles