Javascript - catch СинтаксисError и запуск альтернативной функции

Я пытаюсь создать что-то на 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.

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

Я уже пытался с 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");
}