Deprecated: Function get_magic_quotes_gpc() is deprecated in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 99

Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 619

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1169

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176
JavaScript Errors Try Catch Throw
Nothing Special   »   [go: up one dir, main page]

Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS DSA TYPESCRIPT ANGULAR ANGULARJS GIT POSTGRESQL MONGODB ASP AI R GO KOTLIN SASS VUE GEN AI SCIPY CYBERSECURITY DATA SCIENCE INTRO TO PROGRAMMING BASH RUST

Basic JavaScript

JS Tutorial JS Syntax JS Variables JS Operators JS If Conditions JS Loops JS Strings JS Numbers JS Functions JS Objects JS Dates JS Arrays JS Typed Arrays JS Sets JS Maps JS Math JS RegExp JS Data Types JS Errors JS Events JS Programming JS References JS UTF-8 Characters JS Versions

JS Advanced

JS Functions JS Objects JS Classes JS Iterations JS Promises JS Modules JS HTML DOM JS Windows JS Web API JS AJAX JS JSON JS jQuery JS Graphics JS Examples JS Reference


JavaScript Errors

Errors Will Happen!

When executing JavaScript code, different errors can occur.

Errors can be coding errors made by the programmer, errors due to wrong input, and other unforeseeable things:

  • Reference Errors
  • Type Errors
  • Range Errors
  • URI Errors
  • Syntax Errors
  • Eval Error (deprecated)
  • Silent Errors (next chapter)

How to Handle JavaScript Errors

The try statement allows you to define a block of code to be tested for errors while it is being executed.

The catch statement allows you to define a block of code to be executed, if an error occurs in the try block.

The JavaScript statements try and catch come in pairs:

try {
  Block of code to try
}
catch(err) {
  Block of code to handle errors
}

Reference Errors

A ReferenceError occurs if you use (reference) a variable that does not exist.

Error TypeExampleError
ReferenceErrorfname = foo; foo is not defined
ReferenceErrorlet x = y;
let y = 5;
Cannot access y before initialization

Examples

You cannot use a non-existing variable:

let x = 5;

try {
  x = y + 1;
}
catch(err) {
  let text = err.name;
}
Try it Yourself »

Cannot access a variable before initialization:

try {
  let x = y;
  let y = 5;
}
catch(err) {
  let text = err.name;
}
Try it Yourself »

JavaScript Type Errors

A Type Error occurs when a value is of the wrong type or an operation is invalid on that type.

ErrorExampleError Message
TypeErrorAnna(5);Anna is not a function
Type Errorlet num = 1;
num.toUpperCase();
num.toUpperCase is not a function

Examples

Anna() is not a function:

try {
  Anna(5);
}
catch(err) {
  let text = err.name;
}
Try it Yourself »

You cannot convert a number to upper case:

let num = 1;
try {
  num.toUpperCase();
}
catch(err) {
  let text = err.name;
}
Try it Yourself »


JavaScript Range Errors

A RangeError occurs when a value is out of its valid range.

Error TypeExampleError Message
RangeErrornew Array(-1);Invalid array length
RangeErrornum.toPrecision(500);toPrecision() argument must be between 1 and 100

Examples

You cannot set the number of array elements to -1:

try {
new Array(-1);
}
catch(err) {
  let text = err.name;
}
Try it Yourself »

You cannot set the number of significant digits of a number to 500:

let num = 1;

try {
  num.toPrecision(500);   // A number cannot have 500 significant digits
}
catch(err) {
  let text = err.name;
}
Try it Yourself »

JavaScript URI Errors

(Uniform Resource Identifier Errors)

An URIError occurs if you use illegal characters in a URI function:

Error TypeExampleError Message
URIErrordecodeURI("%%%");URI malformed

Example

try {
  decodeURI("%%%");   // You cannot URI decode percent signs
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}
Try it Yourself »

JavaScript Syntax Errors

A Syntax Error occurs when the code violates JavaScript's grammar rules.

ErrorExampleError
SyntaxErrorfname = "John);Invalid or unexpected token )
SyntaxErrorMath.round(4.6;Missing ) after argument list

Example

In this example we have made the mistake of not closing the string:

// This line cannot be parsed by JavaScript
let fName = "John);

// Execution stops here
Try it Yourself »

The statement above will generate the error: Invalid or unexpected token

Execution of the program will stop!

Syntax Errors are Not Catchable

  • Syntax errors are not catchable by try...catch
  • Syntax errors happen before runtime

Example

The code below should produce an error, but it does not:

try {
  let x = Math.round(4.6;)
}
catch(err) {
  let text = err.name + " " + err.description;
}
Try it Yourself »

Syntax Issue

Math.round(4.6;)

The line above is syntactically invalid JavaScript. There is an extra semicolon inside the parentheses. The correct syntax should be:

Math.round(4.6);

Why

The point is how the browser handles syntax errors:

The JavaScript engine throws a SyntaxError before running the script.

Syntax errors are caught before the try...catch block executes.

This means the try block never starts. The script just fails to run (no let text = update).

Note

The browser console (F12 → Console tab) would show something like:

Uncaught SyntaxError: missing ) after argument list.


JavaScript Eval Error

An EvalError indicates an error in the eval() function.

Newer versions of JavaScript do not throw EvalError.

Use SyntaxError instead.




×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2025 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.