SyntaxError

The SyntaxError object represents an error when trying to interpret syntactically invalid code. It is thrown when the JavaScript engine encounters tokens or token order that does not conform to the syntax of the language when parsing code. SyntaxError is a serializable object, so it can be cloned with structuredClone() or copied between Workers using postMessage().

Constructor
 SyntaxError()  Creates a new SyntaxError object.  Instance properties
 SyntaxError.prototype.message  Error message. Inherited from Error.  SyntaxError.prototype.name  Error name. Inherited from Error.  SyntaxError.prototype.cause  Error cause. Inherited from Error.  
SyntaxError.prototype.fileName  Non-standard 
  Path to file that raised this error. Inherited from Error.  
SyntaxError.prototype.lineNumber  Non-standard 
  Line number in file that raised this error. Inherited from Error.  
SyntaxError.prototype.columnNumber  Non-standard 
  Column number in line that raised this error. Inherited from Error.  
SyntaxError.prototype.stack  Non-standard 
  Stack trace. Inherited from Error.  Examples
Catching a SyntaxError
try {
  eval('hoo bar');
} catch (e) {
  console.error(e instanceof SyntaxError);
  console.error(e.message);
  console.error(e.name);
  console.error(e.fileName);
  console.error(e.lineNumber);
  console.error(e.columnNumber);
  console.error(e.stack);
}
Creating a SyntaxError
try {
  throw new SyntaxError('Hello', 'someFile.js', 10);
} catch (e) {
  console.error(e instanceof SyntaxError); // true
  console.error(e.message);                // Hello
  console.error(e.name);                   // SyntaxError
  console.error(e.fileName);               // someFile.js
  console.error(e.lineNumber);             // 10
  console.error(e.columnNumber);           // 0
  console.error(e.stack);                  // @debugger eval code:3:9
}
Specifications

Specification
ECMAScript Language Specification # sec-native-error-types-used-in-this-standard-syntaxerror

Browser compatibility




Desktop
Mobile
Server



Chrome
Edge
Firefox
Internet Explorer
Opera
Safari
WebView Android
Chrome Android
Firefox for Android
Opera Android
Safari on IOS
Samsung Internet
Deno
Node.js




SyntaxError
1
12
1
5.5
5
1
4.4
18
4
10.1
1
1.0
1.0
0.10.0


SyntaxError
1
12
1
5.5
5
1
4.4
18
4
10.1
1
1.0
1.0
0.10.0


serializable_object
77
79

103
["Version 103 serializable properties: name, message, cause, fileName, lineNumber and columnNumber.", "Version 104 also serializes stack in window.postMessage() and structuredClone()."]

No
64
No
77
77

103
["Version 103 serializable properties: name, message, cause, fileName, lineNumber and columnNumber.", "Version 104 also serializes stack in window.postMessage() and structuredClone()."]

55
No
12.0
No
No



See also
 Error 

Found a problem with this page?

Edit on GitHub
Source on GitHub
Report a problem with this content on GitHub
Want to fix the problem yourself? See our Contribution guide.


Last modified: Sep 5, 2022, by MDN contributors


    
{'path': 'public/docs/javascript/global_objects/syntaxerror.html', 'source': 'DevDocs.IO'}