bugl
bugl
HomeLearnPatternsPathsSearchPremium
HomeLearnPatternsPaths
Learn/JavaScript/Debugging, Projects, and Reference
JavaScript•Debugging, Projects, and 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
}

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

let anna = 5;
try {
  anna(5);
} catch(err) {
let text = err.name;
}

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

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

JavaScript URI 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;
}

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

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

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

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

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). 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. See Also: JavaScript Silent Errors JavaScript Error Statements JavaScript Error Object JavaScript Debugging

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

The browser console (F12 → Console tab) would show something like: Uncaught SyntaxError: missing ) after argument list.

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.

See Also

JavaScript Silent Errors

JavaScript Error Statements

JavaScript Error Object

JavaScript Debugging

Chapter

Back to Debugging, Projects, and Reference

Next

JavaScript Debugging

This chapter

Overview
32

Lessons

180m

Read time

1. JavaScript Errors2. JavaScript Debugging3. JavaScript Statements4. Project - localStorage Counter5. ECMAScript 20266. JavaScript Silent Errors7. JavaScript Debugging Console8. JavaScript Reserved Words9. Project - Event Listener10. ECMAScript 202511. JavaScript Error Statements12. JavaScript Debugging Breakpoints13. JavaScript Operator Precedence14. Project - To-Do List15. ECMAScript 202416. JavaScript Debugging Errors17. Project - Modal Popup18. ECMAScript 202319. JavaScript Debugging Async20. Project - Form Validation21. ECMAScript 202222. ECMAScript 202123. ECMAScript 202024. ECMAScript 201925. ECMAScript 201826. ECMAScript 201727. ECMAScript 201628. Javascript 2015 (ES6)29. JavaScript 2009 (ES5)30. JavaScript 1999 (ES3)31. JavaScript Versions32. JavaScript History

On this page

Errors Will Happen!How to Handle JavaScript ErrorsJavaScript Type ErrorsJavaScript Range ErrorsJavaScript URI ErrorsJavaScript Syntax ErrorsSyntax Errors are Not CatchableSyntax IssueWhyJavaScript Eval Error