javascript - catch SyntaxError and run alternate function

13,123

Are you sure a Try...Catch block won't work? This example works for me in firefox.

try {
  eval("hello I am a plain text without quotes");
} catch(err) {
  alert("error caught");
}
Share:
13,123

Related videos on Youtube

zanona
Author by

zanona

My primary focus over the past 15 years has been full-stack web development and implementation, experimenting with technologies while thinking openly about how tech and users can interact. Currently, acting as a web consultant for goal-oriented businesses and concentrating on designing interactive systems, UX research/ implementation and engineering/development of elaborate online platforms.

Updated on March 13, 2020

Comments

  • zanona
    zanona about 4 years

    I'm trying to build something on javascript that I can have an input that can be everything like string, xml, javascript and (non-javascript string without quotes) as follows:

    //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;");
    

    So this first 3 are working well since they are simple javascript native formats

    but when I try use this inside javascript

    //plain-text without quotes
        eval("hello I am a plain text without quotes");
        //--SyntaxError: missing ; before statement:--//
    

    Obviously javascript interprets this as syntax error because it thinks its javascript throwing a SyntaxError.

    So what I would like to do it to catch this error and perform the adjustment method if this occurs.

    I've already tried with try catch but it doesn't work since it keeps returning the Syntax error as soon as it tries to execute the code.

    Any help would be much appreciated

    Cheers :)

    Additional Information: Imagine an external file that javascript would read, using spidermonkey, so it's a non-browser stuff(I can't use HttpRequest, DOM, etc...)..not sure if this matters, but there it is. :)

Related