What is an Exception?
Ans) The exception is
said to be thrown whenever an exceptional event occurs in java which signals
that something is not correct with the code written and may give unexpected
result. An exceptional event is a occurrence of condition which alters the normal
program flow. Exceptional handler is the code that does something about the
exception.
Exceptions are defined
in which java package?
Ans) All the
exceptions are subclasses of java.lang.Exception
How are the exceptions
handled in java?
Ans) When an exception
occurs the execution of the program is transferred to an appropriate exception
handler. The try-catch-finally block is used to handle the
exception.
The code in which the
exception may occur is enclosed in a try block, also called as a guarded region.
The catch
clause matches a specific exception to a block of code which handles
that exception.
And the clean up code
which needs to be executed no matter the exception occurs or not is put inside
the finally block
Explain the exception
hierarchy in java.
Ans) The hierarchy is
as follows:

Throwable is a parent
class of all Exception classes. There are two types of Exceptions: Checked
exceptions and UncheckedExceptions or RunTimeExceptions.
Both type of exceptions extends Exception class.
What is Runtime Exception or unchecked exception?
Ans) Runtime exceptions represent problems that are the result
of a programming problem. Such problems include arithmetic exceptions, such as
dividing by zero; pointer exceptions: such as trying to access an object
through a null reference; and indexing exceptions: such as attempting to access
an array element through an index that is too large or too small.
Runtime exceptions need not be explicitly caught in try catch
block as it can occur anywhere in a program, and in a typical one they can be
very numerous. Having to add runtime exceptions in every method declaration
would reduce a program's clarity. Thus, the compiler does not require that you
catch or specify runtime exceptions (although you can). The solution to rectify
is to correct the programming logic where the exception has occurred or provide
a check.
What is checked exception?
Ans) Checked exception are the exceptions which forces the
programmer to catch them explicitly in try-catch block. It is a subClass of
Exception. Example: IOException.
Ans) An error is an irrecoverable condition occurring at
runtime. Such as OutOfMemory error. These JVM errors you can not repair them at
runtime.Though error can be caught in catch block but the execution of
application will come to a halt and is not recoverable.
While exceptions are conditions that occur because of bad input
or human error etc. e.g. FileNotFoundException will be thrown if the specified
file does not exist. Or a NullPointerException will take place if you try using
a null reference. In most of the cases it is possible to recover from an
exception (probably by giving user a feedback for entering proper values etc.)
In Java, both ClassNotFoundException and NoClassDefFoundError occur when a particular class is not
found at run time. But, they occur at different scenarios. ClassNotFoundException is an exception which occurs when you
try to load a class at run time using Class.forName() orloadClass() methods
and mentioned classes are not found in the classpath. On the other hand, NoClassDefFoundError is an error which occurs when a
particular class is present at compile time but it was missing at run
time. In this tutorial, we will see the differences between
ClassNotFoundException Vs NoClassDefFoundError in java and when they
occur.
ClassNotFoundException In Java :
ClassNotFoundException
is a run time exception which is thrown when an application tries to load a
class at run time using Class.forName() orloadClass() or findSystemClass() methods and the class with
specified name are not found in the classpath. For example, you may have
come across this exception when you try to connect to MySQL or Oracle databases
and you have not updated the classpath with required JAR files. In most of
time, this exception occurs when you try to run an application without updating
the classpath with required JAR files.
For
example, below program will throw ClassNotFoundException if the mentioned class “oracle.jdbc.driver.OracleDriver” is not found in the classpath.
public
class MainClass{ public
static void main(String[] args) { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch
(ClassNotFoundException e) { e.printStackTrace(); } }} |
If
you run the above program without updating the classpath with required JAR
files, you will get the exception like below,
java.lang.ClassNotFoundException:
oracle.jdbc.driver.OracleDriver at
java.net.URLClassLoader.findClass(Unknown Source) at
java.lang.ClassLoader.loadClass(Unknown Source) at
sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at
java.lang.ClassLoader.loadClass(Unknown Source) at
java.lang.Class.forName0(Native Method) at
java.lang.Class.forName(Unknown Source) at
pack1.MainClass.main(MainClass.java:17) |
NoClassDefFoundError In Java :
NoClassDefFoundError
is an error which is thrown when Java Runtime System tries to load the
definition of a class and class definition is no longer available. The required
class definition was present at compile time but it was missing at run
time. For example, compile the below program.
class
A{}public
class B{ public
static void main(String[] args) { A
a = new A(); }} |
When
you compile the above program, two .class files will be generated. One is A.class and another one is B.class.
If you remove the A.class file and run the B.class file,
Java Runtime System will throw NoClassDefFoundError like below,
Exception
in thread "main" java.lang.NoClassDefFoundError:
A at
MainClass.main(MainClass.java:10)Caused
by: java.lang.ClassNotFoundException: A at
java.net.URLClassLoader.findClass(URLClassLoader.java:381) at
java.lang.ClassLoader.loadClass(ClassLoader.java:424) at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at
java.lang.ClassLoader.loadClass(ClassLoader.java:357 |
No comments:
Post a Comment