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 List
List<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 List
ObjectOutputStream output = new ObjectOutputStream(
new FileOutputStream("quarks.ser"));try{
output.writeObject(quarks);}finally{
//flush and close all streams
output.close();}}}
See Also :
Exception translation
No comments:
Post a Comment