In some situation it is possible that the constructor of a class throw exception. In such condition you should have proper code to handle it. In this section we will going to discuss how we handle exception thrown by a constructor.
Given below example will give you a clear idea how a constructor can throw exception and how should we handle it :
Given below a parameterized constructor which accept file name as string argument. This constructor will open the file, But if there is a problem in opening file, it will revert calling routine with a exception or simply it throw the exception back to the calling routine.
package simpleCoreJava;
import java.io.*;
class WordCount2
{
//creates BufferedReader to read/open the input file
private BufferedReader br=null;
//print writer to write to a file
private PrintWriter pw=null;
public WordCount2(String afile) throws Exception
{
File inFile=new File(afile);
//if the file the user puts in does not exist, then throw an exception
if(inFile.exists())
{
try
{
br=new BufferedReader(new FileReader(afile));
}
catch(FileNotFoundException fnfe)
{
System.out.println(fnfe.getMessage());
}
catch(IOException ioe)
{
System.out.println(ioe.getMessage());
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
else
{
throw new Exception("The input file does not exist");
}
}
}
public class WordCount{
public static void main(String args[])
{
try {
WordCount2 w2= new WordCount2("C:/ankit.txt");
} catch (Exception e) {
e.printStackTrace();
}
}
}
OUTPUT
java.lang.Exception: The input file does not exist at simpleCoreJava.WordCount2.<init>(WordCount.java:42) at simpleCoreJava.WordCount.main(WordCount.java:51) |
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.
Ask Questions? Discuss: Exceptional Constructors - Java Tutorials
Post your Comment