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
Post a Comment