Skip to main content

Types of Errors and Error Handling in JavaScript

Errors in programming can be categorized into three types: Syntax Errors, Runtime Errors, and Logical Errors.

Syntax Errors

Syntax errors, also known as parsing errors, occur during compilation or interpretation:

<script type="text/javascript">
window.print(;  // Syntax error: missing closing parenthesis
</script>

When a syntax error occurs in JavaScript, only the affected thread stops, allowing other threads to continue.

Runtime Errors

Runtime errors, or exceptions, occur during script execution:

<script type="text/javascript">
window.printme();  // Runtime error: calling a non-existing function
</script>

Exceptions affect the thread they occur in, but other JavaScript threads can continue normally.

Logical Errors

Logical errors are mistakes in the logic of your script, resulting in unexpected behavior:

These errors are not syntax or runtime errors and depend on business logic.

The try...catch...finally Statement

JavaScript supports exception handling with try...catch...finally blocks:

<script type="text/javascript">
try {
    // Code to run
} catch (e) {
    // Code to handle exception
} finally {
    // Code that always executes
}
</script>

The try block must be followed by either a catch block, a finally block, or both.

Examples

Example demonstrating try...catch to handle a runtime error:

<script type="text/javascript">
function myFunc() {
   var a = 100;
   
   try {
      alert("Value of variable a is : " + a);
      window.printme();  // Trying to call a non-existing function
   } catch (e) {
      alert("Error: " + e);
   }
}
</script>

The throw Statement

The throw statement allows you to create custom exceptions:

<script type="text/javascript">
function myFunc() {
   var a = 100;
   var b = 0;
   
   try {
      if (b == 0) {
         throw("Divide by zero error.");
      } else {
         var c = a / b;
      }
   } catch (e) {
      alert("Error: " + e);
   }
}
</script>

The onerror() Method

The onerror event handler provides information about errors occurring on a page:

<script type="text/javascript">
window.onerror = function(msg, url, line) {
   alert("Message: " + msg);
   alert("URL: " + url);
   alert("Line number: " + line);
}
</script>

It helps in identifying and handling errors that occur during script execution.

Comments