2015-01-15 45 views
0

throw new Error和使用Meteor.Error()有什麼區別?難道只是throw new Error不會顯示給客戶端,只在服務器上(客戶端將得到500內部服務器錯誤);和Meteor.Error將發送給客戶端。Error vs Meteor.Error

有沒有更多的區別?例如。是否有人跳出Fibers,停止下游代碼?

回答

0

與Meteor.Error最主要的是像你提到的

  • 一個完整的堆棧跟蹤
  • 可能性(可能不被錯誤總是被給予)發送錯誤到客戶端,在有限不透露形式。
  • 隱藏在某些情況下,服務器的錯誤(如果其在一個方法拋出或發佈方法,和從鉤如Accounts.onLoginAttempt
  • 目的內側EJSON序列等等各種數據的可發送下至客戶端
  • 當引發Meteor.Error時,由於EJSON序列化,您可以在服務器端獲得更多信息。
  • 流星顯示更好的錯誤。 通常你可以得到[Object object]爲理由,從普通的錯誤,當他們從普通的錯誤顯示,從Meteor.wrapAsync

即使世界沒有多少人這是不同的,Meteor.ErrorError上述變化的一個子類。

所以他們都會停止下游代碼。當涉及到纖維,如果採用普通的一個以任何方式可能停止您的應用程序拋出光纖的(在服務器端&不在methodstartupMeteor.setIntervalpublish等)

它的定義也相當小:https://github.com/meteor/meteor/blob/devel/packages/meteor/errors.js