javascript - catch SyntaxError et exécuter en fonction de remplacement
Je suis en train de construire quelque chose sur le javascript que je peux avoir une entrée qui peut être tout
comme string, xml, javascript et (non-javascript chaîne sans guillemets) comme suit:
//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 cette première 3 fonctionnent bien depuis qu'ils sont simple javascript natif,
mais lorsque j'essaie d'utiliser le présent à l'intérieur de javascript
//plain-text without quotes
eval("hello I am a plain text without quotes");
//--SyntaxError: missing ; before statement:--//
Évidemment javascript interprète cela comme une erreur de syntaxe car il pense de son javascript jeter un SyntaxError.
Donc ce que je voudrais faire pour rattraper cette erreur et effectuer le réglage de la méthode si cela se produit.
J'ai déjà essayé avec des try catch mais ça ne fonctionne pas car il revient toujours, l'erreur de Syntaxe dès qu'il essaie d'exécuter le code.
Toute aide serait grandement appréciée
Cheers 🙂
Informations Supplémentaires: Imaginez un fichier externe javascript serait de lire, à l'aide de spidermonkey, c'est donc un non-navigateur trucs(je ne peux pas utiliser HttpRequest, DOM, etc...)..ne sais pas si cela est important, mais il est. 🙂
OriginalL'auteur zanona | 2010-03-12
Vous devez vous connecter pour publier un commentaire.
Êtes-vous sûr un Try...Catch bloc ne fonctionne pas? Cet exemple fonctionne pour moi sous firefox.
Ouais, je ne vois pas quel est le problème avec cette façon de faire.
J'ai aussi essayé de rattraper une erreur de syntaxe, mais il l'a envoyé à la console "interceptée" de toute façon. L'erreur de syntaxe a été causé par l'interruption prématurée d'une requête ajax pas un "eval" mais le concept est le même, je pensais qu'ils
try..catch
pourrait fonctionner, mais il n'a pas.OriginalL'auteur jessegavin