JavaScript - поймать SyntaxError и запустить альтернативную функцию
Я пытаюсь построить что-то на javascript, чтобы я мог иметь ввод, который может быть что угодно, как string, xml, javascript и (не-javascript string без кавычек) следующим образом:
//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;");
Так что эти первые 3 работают хорошо, так как они являются простыми нативными форматами JavaScript
но когда я пытаюсь использовать это внутри JavaScript
//plain-text without quotes
eval("hello I am a plain text without quotes");
//--SyntaxError: missing ; before statement:--//
Очевидно, javascript интерпретирует это как синтаксическую ошибку, потому что считает, что javascript выдает ошибку SyntaxError.
Так что я хотел бы сделать это, чтобы поймать эту ошибку и выполнить метод корректировки, если это произойдет.
Я уже пробовал с try catch, но он не работает, так как он продолжает возвращать синтаксическую ошибку, как только пытается выполнить код.
Любая помощь приветствуется
Ура:)
Дополнительная информация: Представьте себе внешний файл, который будет читать javascript, используя spidermonkey, так что это не браузер (я не могу использовать HttpRequest, DOM и т. Д.)... не уверен, если это имеет значение, но это так.:)
1 ответ
Вы уверены, что блок Try...Catch не будет работать? Этот пример работает для меня в Firefox.
try {
eval("hello I am a plain text without quotes");
} catch(err) {
alert("error caught");
}