Programming is fun but this sometimes comes up with mistakes and errors.No matter how much of programming experience you have , you always make mistakes and those mistakes result in unexpected results.This is what we term as errors and exceptions.In this article i will talk about errors and exceptions in respect of Javascript,we will see various types of errors with proper examples.So let’s dive into the world of exceptions.
Types of errors in programming
In programming, errors can be any of the following types:
1. Syntax error
2. Runtime error
3. Logical error
Let’s talk about them one by one
Syntax errors
If you don’t know what does syntax means, let me provide a definition to you
Syntax is the arrangement of words and phrases to create well-formed sentences in a language
So, every language have some predefined ways to write a program and when you make some mistake putting words or literals at wrong place and even missing them sometimes, can result into Syntax error.These errors are also refered as Parsing errors
Example
In below example, we have missed the closing parenthesis while using alert()
var str="Hello World";
alert("Hello World";
Runtime errors
These are the errors that occur while compilation or interpretation of your program.Incase of javascript it occurs while the program is interpreted.Whenever a runtime error happens, the code below the line with error will never get executed.
Example
The below code will result into a runtime error at line var result = x.getString();
Output
Uncaught TypeError: x.getString is not a function
at window.onload
Logical errors
These errors are the most difficult to debug.They occur when you make some logical mistake like the business logic or conceputal mistakes.Javascript cannot handle these errors by itself beacuse it completely depends on your business logic which javascript is not aware of. You may use throw
(we are going to see later in this article) to let the user know about the error.
Handling errors
Now, as we know about programming error types, let’s see how we can handle these errors in javascript. For the purpose we use try
, catch
, throw
and finally
statements. Whenever an error occurs the technical term we use for it is throwing an exception .
try{}
This allows you to test for errors in your code.You put the code you want to test within {}
.
catch(err){}
This block actually let’s you handle the errors thrown. The error object err
has all the details about the errors.
finally{}
Your code inside the finally
block always gets executed after try and catch .It doesn’t depend on whether the code ran successfully or with some error.
Now, let’s understand them with an example
Example
Output
Something went wrong TypeError: str.getNumber is not a function at window.onload ((index):35) This should always get executed
throw
Sometimes you need to create custom errors and throw them when needed, may be when there is some logical error and you want the user to know something wrong happened.
Let’s see an example of an logical error and how we can use throw
to throw an exception. In this example we are going to iterate an array and log each of it’s elements. At the end we are going to count the number of elements that are not printed(if any) and throw an exception with the count of not printed elements.
Example
Output
The number , 2 The number , 3 The number , 4 The number , 5 Uncaught 1 element(s) is/are not printed
onerror() method
This function fires the error event on window
object whenever there is an error during runtime.Generally this is used with the syntax window.onerror
Example
Output
Some error occured Uncaught ReferenceError: someFunction is not defined
Another usage of onerror()
is to handle error while loading an image just list the below example.
Example
I hope this article gives you basic understanding of errors and exceptions and how you can handle them in javascript. Bring on any question or feedback you have in the comments.
Happy Coding !!!
About Author
Prabhat Giri
Software engineer (@Prabhat Giri)Hi thanks for reading my blog. I am a software professional who is also passionate about business and travelling.
Popular topicsCareer Javascript Web Development Job Preparation Angular Geekncoder