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 } 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 .
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 } 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 } 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/