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");
}
Другие вопросы по тегам