Gibt es irgendeine Art von JavaScript-Fehler, die von nicht behandelt wird onerror in einem Ember (-cli ) Anwendung? Mit anderen Worten ist es eine Notwendigkeit, einen Handler window.onerror hinzufügen?
Bei meinen Tests konnte ich keinen Fehler finden, der nicht von Embers Fehler behandelt werden würde. Syntaxfehler sind nicht über den Buildprozess von ember-cli hinausgelaufen.
EmberJS leistet hervorragende Arbeit, um Fehler zu enthalten, die innerhalb seiner Grenzen passieren . Fehler, die durch Ihren Ember-Code verursacht werden, sollten alle in den Ember-spezifischen Handler geleitet werden.
Allerdings ist Browser JavaScript ein kompliziertes Biest. Alle JavaScript-Fehler, die außerhalb von Ember passieren, werden nicht intern erfasst und können nur durch das globale window.onerror
angezeigt werden. Einige Beispiele hierfür könnten sein:
setTimeout
und addEventListener
Um ein vollständiges Bild davon zu erhalten, was mit Ihren Besuchern passiert, sollten Sie wahrscheinlich sowohl Ember.onerror
als auch window.onerror
anhängen und die Berichte an Ihre Protokolle zurücksenden. Auch wenn Sie sich nicht aktiv weiterentwickeln, können Browseränderungen zu plötzlichen Fehlern in Ihrer Anwendung führen. Wie dieser Webkit-Fehler, der dazu führte, dass ember Fehler verursachte . Es gibt gute Möglichkeiten, um Fehler automatisch von Ember-Apps wie TrackJS aufzunehmen.
Disclosure: Ich bin einer der Gründungsentwickler von TrackJS, daher habe ich viele Fehler beseitigt:)
Nach meiner Erfahrung würde ich nicht raten, ein window.onerror
förder, wenn Sie einen guten Grund haben, dies zu tun, und Sie wissen, was Sie können tun.
Mein Wissen aller Embers onerror
Methoden huckepack auf window.onerror
und überschreibt es hat das Potenzial, außer Kraft zu setzen / deaktivieren Sie alle die Fehler in Ihrer Anwendung.
Typischer Fall, ich hatte vor kurzem eine Erfahrung, wo ich bemerkte, dass alle meine js Fehler Protokollierung gestoppt insgesamt zu trösten. Der Grund war, dass ein anderer Entwickler in meinem Team in meine index.html geladen hatte, um ein <script>
-Tag einzufügen, das window.onerror
für ein Fehlermeldungsskript verwendete. Das Ergebnis war, dass zwingende window
litterally alle Embers onerror
invalid becuase sie in einem sprudelnden Art und Weise arbeiten.
Ich denke, wenn Sie window.onerror
überschreiben wollen, müssen Sie sicherstellen, dass es immer false
zurückgibt, damit es die Standardfehlerbehandlung im Browser nicht verhindert.
Siehe: Ссылка
Ich hoffe, dass das zu einem gewissen Grad Klarheit schafft.
Ember hat ein eingebautes Fehlerereignis, das Sie in Ihren Routen verwenden können
%Vor%Weitere Informationen: Ссылка
Tags und Links error-handling ember.js