JavaScript von Drittanbietern - gute Idee, try catch zu verwenden?

8

Ich entwickle ein JavaScript-Widget von Drittanbietern, das von Benutzern in ihren Anwendungen / Blogs enthalten sein wird. Ich habe gute Tests in der Bibliothek, aber ich befürchte, dass wenn trotzdem ein Syntaxfehler durchschwirrt und die anderen Skripte in der Anwendung des Benutzers aufhören, zu laden.

Also - um dies zu verhindern, ist es eine gute Idee, meinen gesamten Widget-Code in einem try / catch so zu umgeben?

%Vor%     
jeffreyveon 13.12.2011, 15:30
quelle

2 Antworten

1

Hier ist ein guter allgemeiner Ansatz dafür, wofür try-catch Blöcke verwendet werden. Wenn Sie eine Ausnahme abfangen und etwas mit dieser Ausnahme machen können, gehen Sie weiter und fangen Sie sie ab. Zum Beispiel ist BadHtmlException oder etwas Ähnliches eine Ausnahme, die Sie fangen können, um dem Benutzer Feedback zu geben, dass Sie den HTML-Code korrigieren sollten, und es erneut versuchen.

Es gibt Arten von Ausnahmen, bei denen keine Aktion ausgeführt werden kann. Beispielsweise wurde die Anwendung falsch mit einem ungültigen Benutzer / Kennwort konfiguriert. Dies sollte ein kritischer Fehler sein und sollte bis zur Anwendung reichen. Möglicherweise eine Ausnahme, die für den Benutzer möglicherweise keinen Sinn ergibt.

Was soll ich vorschlagen? Ich schlage vor, nichts in ein try-catch einzubinden, es sei denn, Sie wissen, dass diese Ausnahme ausgelöst wird. Wenn ein Fehler oder eine Ausnahme vorliegt, sollte die Person, die Ihren Code verwendet, diese sehen und als Problem melden. Sie können wirklich nicht Ihre gesamte Zeit damit verbringen, mögliche Probleme durchzugehen, die möglicherweise Ihr Code sind oder nicht.

Schließlich sollten Sie Komponententests schreiben und sicherstellen, dass jeder Teil Ihrer Bibliothek vor jeder Veröffentlichung gut getestet wird. Dadurch wird sichergestellt, dass zukünftige Versionen nichts kaputt machen.

    
Amir Raminfar 13.12.2011, 15:43
quelle
0

Was Sie tun könnten, ist ein try / catch-Block um den Code herum, der einen console.log () -Aufruf in den catch-Block setzt. Auf diese Weise wird der Consumer-Code weiterhin ausgeführt. Beim Debuggen wird jedoch festgestellt, dass in Ihrer Bibliothek ein Fehler aufgetreten ist, und Sie werden benachrichtigt.

    
bigblind 13.12.2011 15:43
quelle

Tags und Links