Reputation: 39
Will the below code handle any type of exception?
try
{
// some code
}
catch(Exception e)
{
// some code part
}
Or should I do like this:
try
{
// some code
}
catch(type of Exception e)
{
// some coding stuff
}
Upvotes: 0
Views: 254
Reputation: 133560
Try should be followed by a catch. FileNotFoundException is a sub Exception of IOException. So it must come first. If you have some file opened and an exception occurs in try block you need to close that in finally block. The finally block always executes when the try block exits.
try {
}
catch (FileNotFoundException e) {
//do something with FileNotFoundException
}
catch (IOException e) {
//do something with IOException
}
finally
{
// do some clean up operation
}
http://docs.oracle.com/javase/tutorial/essential/exceptions/try.html
http://docs.oracle.com/javase/tutorial/essential/exceptions/catch.html
http://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html
http://www.programcreek.com/2009/02/diagram-for-hierarchy-of-exception-classes/
Upvotes: 0
Reputation: 49372
You can try below things :
1) To catch all Exception
object and its sub-types :
try {
// potential exception throwing code
}
catch(Exception e){
}
2) To catch all Throwable
and sub-types :
try {
// potential exception and error throwing code
}
catch(Throwable t){
}
3) To catch any XYZ Exception and its sub-types:
try {
// potential XYZException throwing code
}
catch(XYZException xyzException){
}
Please refer to the Oracle site : http://docs.oracle.com/javase/tutorial/essential/exceptions/ , for more information .
Upvotes: 1
Reputation: 48602
try {
//some code
} catch(Exception e) {
//some code part
}
It will handle all type of exception because its parent class of all type of exception but if you are getting Error like AWTError
or VirtualMachine Error
-> OutOfMemoryError
or StackOverFlowError
then it will not handle it.
To handle all type of exception and error do like this.
try {
// some code
}
catch(Throwable throwable) {
// some coding stuff
}
Example 2:
try {
// some code
}
catch(type of Exception e) {
// some coding stuff
}
This will not handle all type of exception. If you write here NullPointerException
then it will handle only NullPointerException
.
Remember: Define the catch in such a way that put the sub class to first then parent class otherwise code become Unreachable and you will get compile time error.
try {
// some code
}
catch(NullPointerException e) {
// some coding stuff
}
catch(Exception e) {
// some coding stuff
}
Upvotes: 0
Reputation: 2427
try { some code } catch(Exception e) { some code part }
will catch any exception of type Exception
or any subclass of it. If you want to catch any exception, use
try { some code } catch(Throwable e) { some code part }
then you will get the Error
s (class not found etc.) as well.
Upvotes: 0
Reputation: 1198
It depends on the type of Exception in your catch statement
catch (Exception e)
will catch any Exception as it is the parent class of all Exceptions.
catch (FileNotFoundException e)
will only catch FileNotFoundExceptions.
This allows you to have multiple catch statements:
try {
...
}
catch (FileNotFoundException e) {
//do something with FileNotFoundException
}
catch (IOException e) {
//do something with IOException
}
Upvotes: 0