JavaScript - поймайте SyntaxError и выполните альтернативную функцию

Я пытаюсь создать что-то на JavaScript, что у меня может быть вход, который может быть всем как строка, xml, JavaScript и (строка не-JavaScript без кавычек) следующим образом:

//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.

Таким образом, что я хотел бы сделать это, чтобы зафиксировать эту ошибку и выполнить метод корректировки, если это происходит.

Я уже попробовал выгодой попытки, но она не работает, так как это продолжает возвращать Синтаксическую ошибку, как только она пытается выполнить код.

Любая справка очень ценилась бы

Аплодисменты :)

Дополнительная информация: Вообразите внешний файл, который JavaScript считал бы, с помощью spidermonkey, таким образом, это - материал небраузера (я не могу использовать HttpRequest, DOM, и т.д....).. не уверенный, если это имеет значение, но там это.:)

13
задан zanona 12 March 2010 в 22:52
поделиться

1 ответ

Вы уверены, что блок Try ... Catch не будет работать? Этот пример работает у меня в firefox.

try {
  eval("hello I am a plain text without quotes");
} catch(err) {
  alert("error caught");
}
21
ответ дан 1 December 2019 в 22:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: