Mastering Java Exceptions with Best Practices

This highly practical course will teach you the right tools & best practices for building robust software.
4.7 (17 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
144 students enrolled
Sale Ends Today!
25% off
Take This Course
  • Lectures 21
  • Length 3 hours
  • Skill Level All Levels
  • Languages English, captions
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 4/2016 English Closed captions available

Course Description

Note: You don't have to register for this course if you have already registered for my comprehensive Java course ~ Java In-Depth: Become a Complete Java Engineer!. The Java course includes all the content that is covered in this course.

Building reliable software is not just about understanding how Java exceptions work, but to also understand how to use them in the right way. So, it is more than learning Java exceptions as a language feature and that is what this course aims to teach. This intensely practical specialized course has been designed with following objectives:

  • To give you a complete understanding of the Java exceptions mechanism
  • To teach the best practices & idioms for effectively writing Java exceptions

Exceptions are almost always covered as a short chapter/topic (typically 30 - 45 minutes) in a larger Java course and they only cover the basics of Java exceptions. This may suffice most of the times. But to build truly robust software that can withstand test of times and also help you to quickly identify and debug any bugs, you would need to have a more solid understanding of exceptions and how to use them effectively. Through the above objectives, this course aims to give you that kind of a solid foundation in just about 3 hours of time.

Teaching Style:

All the topics will be covered by writing code. Sometimes, the topics are first explained in slide format for better clarity and then will be demonstrated in code. Most of the code is based on a single concept of sharing data with a partner in a programmatic way. The code will be built gradually with each discussed topic. Every lesson that includes a demo will also come with downloadable code that was implemented in that lesson. You may have to change the file extension to .java for running the downloaded programs. Everything is demonstrated in Eclipse IDE.

Some lessons have additional supplementary notes, which can be downloaded from the resources section of each lesson.

Course Structure:

We first cover all the exception-related language features following which best practices are discussed. Following are most of the language features covered:

  • try/catch/finally & throw/throws
  • checked vs unchecked exceptions
  • try-with-resources statement & suppressed exceptions
  • assertions (discussed after best practices)

As for the best practices & idioms go, we discuss in code all exception-related principles outlined in the popular Effective Java book. This is one of the highlights of the course and will make you truly complete!

There is also a bonus chapter where we demonstrate how to debug Java programs in Eclipse and also how to use JUnit unit testing framework.

The course also ends with a carefully crafted quiz to validate what you have learnt.

Instructor & His Motivation for Creating this Course:

I have over 10 years of experience in Java developing products for start-ups in silicon valley and elsewhere. Fortunately, I also had the opportunity to design & implement few critical data integration software components where exceptions had a very important role to play. By implementing a good exception handling mechanism that followed proper idioms & best practice rules, we were able to handle many serious issues. While we were aware of some of the idioms, we also had to learn some on-the-go, which required some code refactoring. And we also missed out on some due to lack of knowledge about them. Part of the reason was that we were never exposed to these best practices & rules when we first learned Java (or Java Exceptions) through some course/book. So, learning best practices & rules would have to be a separate endeavor, which sometimes may never happen due to various reasons (time is one of them). I realized that it is entirely possible to teach both fundamentals & many of the advanced concepts like best practices in a single comprehensive course. So, this course is a result of that realization where a more holistic approach is taken to teach concepts.

Building this course itself has been a wonderful journey for me and I hope you will also find this course to be equally enriching & useful. I will continue to devote myself in building this course. Always, feel free to message me if you have any questions and I promise to address them as quickly as I can. Also, don't forget to leave a review (good or bad) as it helps me and other prospective students. Thanks!!

What are the requirements?

  • Students need to have a basic working knowledge of Java

What am I going to get from this course?

  • Get an in-depth understanding of Java exceptions mechanism
  • Implement Java exceptions in the most effective way using best practices

Who is the target audience?

  • Students who know Java, but do not know anything about Java exceptions
  • Students who know about Java exceptions, but are still not clear about them entirely!
  • Students who know about Java exceptions well, but do not know/understand the best practices for using them

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Course Introduction
Why this Course?
Section 2: Exceptions
Chapter Introduction ~ Motivation & Agenda
A Quick Note on the Mini Project
Demo: Exceptions & Exception Handling
Demo: Multiple Exceptions & Polymorphically Referencing Exceptions!!
Checked & Unchecked Exceptions + Demo
Demo: Generating OutOfMemoryError & Fixing It
Exceptions & Method Overriding
finally Block + Demo
try-with-resources Statement + Demo
Demo: Suppressed Exceptions
Demo - Best Practices: Creating New Exceptions
Demo - Best Practices for Capturing Failure Information
Demo - Best Practice: Throwing Exceptions Appropriate to Abstraction
Exceptions: Some More Best Practices ...
Demo: Assertions
Conclusion - A Quick Summary
6 questions
Section 3: Bonus Lessons
Note on Follow Up Lessons on Debugging & JUnit Testing
Using Eclipse Debugger
JUnit & Debugging

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Dheeru Mundluru, PhD, CTO & Principal Instructor at Semantic Square

A passionate software engineer and instructor, Dheeru has 10 years of experience developing innovative software for start-ups in silicon valley and elsewhere. He holds a Ph.D. in Computer Science from University of Louisiana at Lafayette (USA). His expertise includes developing complex Web data integration & mining software with Java as the main programming language. Coming from the start-up world, he also has extensive end-to-end experience in developing Web applications using frameworks/tools such as Spring, Hibernate, Solr, MySql, etc. Dheeru is passionate about developing products that are easy-to-use, intelligent, and well-architected. Writing well-crafted code that follows the best design practices is of utmost importance to him. He brings the same level of passion and completeness to his teaching. Every concept is covered at a very in-depth level clearly explaining the motivation behind their introduction. He strongly believes in "learn by involving" teaching principle and thus his courses involve tons of live demos, an industry standard project, and several quizzes. Prior to his current gig at his start-up SemanticSquare, Dheeru worked for around 5 years as a Principal Engineer for NimbleCommerce, an e-commerce start-up in Santa Clara, California. Before NimbleCommerce, he worked as a Research Scientist at Local Corporation, a local search company in Irvine, California. He also published and presented half-a-dozen research papers at top conferences and workshops such as International Conference on Data Mining (ICDM) and Geographic Information Retrieval (GIR). During his graduate-school days, as a teaching assistant for Search & Data Mining courses, he designed course assignments and often gave guest lectures on Web data mining.

Ready to start learning?
Take This Course