【发布时间】:2015-01-15 05:37:41
【问题描述】:
throw new Error 和使用Meteor.Error() 有什么区别?是不是很简单throw new Error不会显示给客户端,只显示在服务器上(客户端会收到500 Internal server error);和Meteor.Error 将被发送给客户端。
还有什么不同吗?例如。是否会破坏 Fibers,停止下游代码?
【问题讨论】:
标签: error-handling meteor
throw new Error 和使用Meteor.Error() 有什么区别?是不是很简单throw new Error不会显示给客户端,只显示在服务器上(客户端会收到500 Internal server error);和Meteor.Error 将被发送给客户端。
还有什么不同吗?例如。是否会破坏 Fibers,停止下游代码?
【问题讨论】:
标签: error-handling meteor
Meteor.Error 的主要内容就像你提到的那样
Accounts.onLoginAttempt 之类的钩子中抛出)[Object object]作为从普通错误中显示的原因,当它们来自普通错误时,来自Meteor.wrapAsync
没有什么不同,Meteor.Error 是Error 的子类,具有上述更改。
所以他们都会停止下游代码。谈到 Fibers,如果以任何方式将普通的 Fiber 从 Fiber 中抛出,它可能会停止您的应用程序(在服务器端而不是在 method、startup、Meteor.setInterval、publish、等)
它的定义也很小:https://github.com/meteor/meteor/blob/devel/packages/meteor/errors.js
【讨论】: