In the throws clause of a method header, be as specific as possible. Do not group together related exceptions in a generic exception class - that would represent a loss of possibly important information.
An alternative is the exception translation practice, in which a low level exception is first translated into a higher level exception before being thrown out of the method.
Example
Here, both IOException and FileNotFoundException are incorrectly lumped together as Exception.
See Also :
Exception translation
An alternative is the exception translation practice, in which a low level exception is first translated into a higher level exception before being thrown out of the method.
Example
Here, both IOException and FileNotFoundException are incorrectly lumped together as Exception.
import java.io.*;import java.util.*;public final class BadGenericThrow {//..elided/**
* BAD: This method throws a generic Exception, instead* of FileNotFoundException and IOException.*/public void makeFile() throws Exception {//create a Serializable ListList<String> quarks = new ArrayList<String>();quarks.add("up");quarks.add("down");quarks.add("strange");quarks.add("charm");quarks.add("top");quarks.add("bottom");//serialize the ListObjectOutputStream output = new ObjectOutputStream(new FileOutputStream("quarks.ser"));try{output.writeObject(quarks);}finally{//flush and close all streamsoutput.close();}}}
See Also :
Exception translation
No comments:
Post a Comment