JavaScript Errors
JavaScript Errors are used by JavaScript to inform developers about various issue in the script being executed. These issues can be syntax error where the developer/programmer has used the worng syntax, it can be due to some wrong user input or some other problem.
JavaScript reports these issues in form of Errors which can be seen in the browser console, when you run your JavaScript code.
For example, if I run the below JavaScript code,
/*
try to use variables a and b,
without defining them
*/
let result = a + b;
Uncaught ReferenceError: a is not defined
As you can see in the output, JavaScript threw a ReferenceError, which means that no reference for variable a
was found. Because, to use any JavaScript variable we should always declare and define it first.
JavaScript Error Types
Now that we know what Errors are and they can occur for many different reasons. Let's see what are the different types of Errors in JavaScript along with a few examples.
Whenever a runtime error occurs, JavaScript creates an Error
object and throw it. The Error
object is the base object on which other specific Error types are based. We can also define our custom user-defined Error types in JavaScript.
JavaScript Error
Object has two fields:
Property |
Description |
name |
Used to set or get the name of Error |
message |
Used to set or get the message of Error |
Following are the 6 types of Error
objects that JavaScript can throw based on the type of the error:
Error Object |
Description |
EvalError |
JavaScript will throw this error when any error will occur in the eval() function. |
RangeError |
JavaScript will throw this error when for a number or any other parameter "out of range" occurs. |
ReferenceError |
JavaScript will throw this error when you try to use some variable or object which is not declared or defined. |
SyntaxError |
JavaScript will throw this error when there is some issue with the syntax of the JavaScript code. |
TypeError |
JavaScript will throw this error when there is a type mismatch in your code. If JavaScript is expecting a value of some other type and in code it gets a different type. |
URIError |
JavaScript will throw this error when any error occurs in encodeURI() or decodeURI() functions. |
JavaScript Throws Error
Whenever an error occurs during JavaScript code execution, the code execution stops and JavaScript prints an error in the console. This is also called as "throwing an error". This is a standard term which is used in all the programming language.
JavaScript internally captures the Error and then throw it which breaks the code execution.
If you want to do the same thing in your code yourself where you want to break the code execution and throw error, you can do so using the throw
statement.
JavaScript throw
statement
We can use the throw statement in our JavaScript code to throw a custom error/exception where we can provide a message while throwing the error. This message can be a string message, a number or any boolean type(true or false). Let's take an example to see this:
throw "Some error message";
throw 404;
throw false;
Uncaught Some error message
As the code execution breaks when a throw
statement is encountered, hence only the first throw
statement will get executed. To handle errors which are thrown by JavaScript or using the throw statement, we have the try
and catch
blocks, which we will cover in the next tutorial.
JavaScript Custom Error (User-defined Error):
In JavaScript we can also define our custom Error
object. Here we have discussed the ECMAScript2015 way which is the prototypal way of defining a user-defined error type.
When you will run the above code example, you will get an error message in your browser's console. To open your browser's developer's tool, press F12 in windows and Command + Option + I in Mac OSX. Following is the output:
MyError {name: "MyError", message: "This is a custom error", stack: "Error at new MyError (<anonymous>:6:31)
In ECMAScript2016 changes were made where in we can define custom Error classes, which we will cover in later tutorial.
So in this tutorial we got a basic introduction to JavaScript Errors, its various different types, how to throw an error using the throw statement and how to write a custom Error type. In the next tutorial we will learn how to handle Errors and Exception in JavaScript.