Suresh Rohan's Blog

This blog is all about Java, J2EE,Spring, Angular, React JS, NoSQL, Microservices, DevOps, BigData, Tutorials, Tips, Best practice, Interview questions, Views, News, Articles, Techniques, Code Samples, Reference Application and much more

Tuesday, May 26, 2015

Exceptions and Assertions


What is an Exception?

Exceptional event
Error that occurs during runtime
Cause normal program flow to be disrupted
Examples
  • Divide by zero errors
  • Accessing the elements of an array beyond its range
  • Invalid input
  • Hard disk crash
  • Opening a non-existent file
  • Heap memory exhausted


What Happens When an Exception Occurs?


When an exception occurs within a method, the method creates an exception object and hands it off to the runtime system
Creating an exception object and handing it to the runtime system is called “throwing an exception”
Exception object contains information about the error, including its type and the state of the program when the error occurred

Benefits of Java Exception Handling Framework


Separating Error-Handling code from “regular” business logic code
Propagating errors up the call stack
Grouping and differentiating error types

The finally Keyword


Block of code is always executed despite of different scenarios:
Forced exit occurs using a return, a continue or a break statement
Normal completion
Caught exception thrown
Exception was thrown and caught in the method
Uncaught exception thrown
Exception thrown was not specified in any catch block in the method

Throwing Exceptions: The throw Keyword

Java allows you to throw exceptions (generate exceptions)
throw <exception object>;
An exception you throw is an object
You have to create an exception object in the same way you create any other object
Example:
throw new ArithmeticException(“testing...”);

Exception Class Hierarchy


The Error and Exception Classes

Throwable class
  • Root class of exception classes
  • Immediate subclasses
    • Error
    • Exception


Exception class

Conditions that user programs can reasonably deal with
Usually the result of some flaws in the user program code
Examples

  • Division by zero error
  • Array out-of-bounds error

Error class

Used by the Java run-time system to handle errors occurring in the run-time environment
Generally beyond the control of user programs
Examples

  • Out of memory errors
  • Hard disk crash

Checked and Unchecked Exceptions


Checked exception
  • Java compiler checks if the program either catches or lists the occurring checked exception
  • If not, compiler error will occur


Unchecked exceptions
  • Not subject to compile-time checking for exception handling
  • Built-in unchecked exception classes
    • Error
    • RuntimeException
    • Their subclasses
  • Handling all these exceptions may make the program cluttered and may become a nuisance

Creating Your Own Exception Class


Steps to follow
  • Create a class that extends the RuntimeException or the Exception class
  • Customize the class
    • Members and constructors may be added to the class

What are Assertions?


Allow the programmer to find out if an assumption was met
  • Example: month
Extension of comments wherein the assert statement informs the person reading the code that a particular condition should always be satisfied
  • Running the program informs you if assertions made are true or not
  • If an assertion is not true, an AssertionError is thrown
User has the option to turn it off or on at runtime

No comments:

Post a Comment