Exceptions handling
Exceptions
Throws clause
The syntax for the declaration of a method that throws exceptions
modifiers returnType methodName([parameterList])
throws exceptionList {}
How to use the throws clause
- To throw a checked exception up to the calling method, you code a throws clause in the method declaration.
- The throws clause must name each checked exception that's thrown up to the calling method.
- Although you can specify unchecked exceptions in the throws clause, the compiler doesn't force you to handle unchecked exceptions.
A method that throws IOException
public static long getFileLength() throws IOException
{
RandomAccessFile in =
new RandomAccessFile("books.dat", "r");
long length = in.length();
return length;
}
A method that calls getFileLength and catches IOException
public static int getRecordCount()
{
try
{
long length = getFileLength(); // can throw IOException
int recordCount = (int) (length / RECORD_SIZE);
return recordCount;
}
catch (IOException e)
{
System.out.println("An IO error occurred.");
return 0;
}
}
Code that calls getFileLength without catching IOException
public static int getRecordCount() throws IOException
{
long length = getFileLength(); // can throw IOException
int recordCount = (int) (length / RECORD_SIZE);
return recordCount;
}
Compiler error generated if you don't catch or throw a checked exception
\java 1.5\examples\ch13\TestIOExceptionApp.java:26: unreported exception java.io.IOException; must be caught or declared to be thrown