Monday, May 19, 2008

Java: swallowing exceptions

This is an example of code that can get us in trouble. We will never know that something went wrong...

public void uploadImportFile(FileContents fileContents, String fileName, String uploadlocation)
OutputStream outFile = null;
File file = new File(uploadlocation);
outFile = new FileOutputStream(uploadlocation + fileName);
outFile.write(fileContents.getFileContents(), 0, fileContents.getFileContents().length - 2);
catch (FileNotFoundException fileNotFoundException)
{ }
catch (IOException ioException)
{ }

1. In the least use:
System.err.println("FileNotFoundException e: " + e.getMessage());


But even better the method should not be void, but return the status.

2. Do not wrap the whole method in try{} with generic exceptions
3. Have a good reason to "push-up" the exception by adding it by the method name "throws ..."