Je suis en train de construire quelque chose sur javascript que je peux avoir une entrée qui peut être tout comme chaîne, xml, javascript et (chaîne non javascript sans guillemets) comme suit :javascript - prises SyntaxError et exécuter la fonction alternative
//strings
eval("'hello I am a string'"); /* note the following proper quote marks */
//xml
eval(<p>Hello I am a XML doc</p>);
//javascript
eval("var hello = 2+2;");
donc, ce 3 premier fonctionnent bien, car ils sont des formats simples natifs javascript
mais lorsque je tente utiliser l'intérieur javascript
//plain-text without quotes
eval("hello I am a plain text without quotes");
//--SyntaxError: missing ; before statement:--//
De toute évidence, javascript interprète cela comme une erreur de syntaxe car il pense que son javascript lève une erreur de syntaxe.
Donc ce que je voudrais faire pour attraper cette erreur et effectuer la méthode d'ajustement si cela se produit.
J'ai déjà essayé avec try catch mais cela ne fonctionne pas car il continue à renvoyer l'erreur de syntaxe dès qu'il essaie d'exécuter le code.
Toute aide serait appréciée
cheers :)
Informations supplémentaires: Imaginez un fichier externe que javascript lirait, en utilisant SpiderMonkey, il est donc une étoffe non-navigateur (je ne peux pas utilisez HttpRequest, DOM, etc ...) .. pas sûr si cela compte, mais il est là. :)
ha qui est juste (quelle bête :()! Merci jesse beaucoup, je tentais avant de déclarer directement sans eval, c'est pourquoi j'ai l'erreur ... mais à l'intérieur du eval il a très bien fonctionné! acclamations :) – zanona
Ouais, je ne vois pas ce qui ne va pas avec cette façon de le faire. – Robusto
J'ai aussi essayé d'attraper une erreur de syntaxe mais il l'a envoyé à la console comme "non pris" de toute façon. L'erreur de syntaxe a été provoquée par une requête ajax avortée pas un "eval" mais c'est le même concept, je pensais que '' try..catch'' fonctionnerait mais ce n'était pas le cas. –