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

Popular posts from this blog

Handling Change Events in jqGrid

Handling Change Events in jqGrid In this tutorial, we'll explore how to handle the change event in jqGrid to dynamically update another column based on the selected value. This approach is useful when you need to update related data based on user selections. Example Scenario Let's say we have a jqGrid table with two columns: Country and State. When the user selects a country, the State column should dynamically update to show the relevant states for the selected country. Implementation We'll use the dataEvents option in the colModel configuration to handle the change event. HTML Structure First, let's set up our basic HTML structure: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>H...

Handling Row Selection in jqGrid with jQuery

Handling Row Selection in jqGrid with jQuery The example below specifies the action to take when a row is selected in a jqGrid: var lastSel; jQuery("#gridid").jqGrid({ ... onSelectRow: function(id) { if(id && id !== lastSel) { jQuery('#gridid').restoreRow(lastSel); lastSel = id; } jQuery('#gridid').editRow(id, true); }, ... }); Explanation This script sets up a jqGrid with a custom action for when a row is selected. Here’s a step-by-step explanation: var lastSel; : A variable to store the last selected row ID. jQuery("#gridid").jqGrid({ ... }); : Initializes the jqGrid on the element with ID gridid . onSelectRow: function(id) { ... } : Defines a function to execute when a row is selected. ...

Persisting jqGrid State with Cookies

Persisting jqGrid State with Cookies jqGrid is an excellent jQuery plugin for displaying a grid. To enhance user experience, we added some filter possibilities and used jQuery to update the URL where data was fetched from. However, when users navigated away from the grid and returned, it would reset to its start position, losing any filtering or sorting they had set. To solve this, we needed to store the user's selections. Here are two JavaScript functions that achieve this using cookies: function saveGridToCookie(name, grid) { var gridInfo = new Object(); name = name + window.location.pathname; gridInfo.url = grid.jqGrid('getGridParam', 'url'); gridInfo.sortname = grid.jqGrid('getGridParam', 'sortname'); gridInfo.sortorder = grid.jqGrid('getGridParam', 'sortorder'); gridInfo.selrow = grid.jqGrid('getGridParam', 'selro...