Generic exception thrown in FileItem#write method
-------------------------------------------------

                 Key: FILEUPLOAD-184
                 URL: https://issues.apache.org/jira/browse/FILEUPLOAD-184
             Project: Commons FileUpload
          Issue Type: Improvement
    Affects Versions: 1.2
         Environment: Windows 7, jdk 6
            Reporter: Zixiang Tang
            Priority: Minor


I write a servlet to handle file upload request. It works fine, all files can 
be received correctly.

However, I find that the write method in FileItem interface throws generic 
exception. I don't think it's a good practice. Throwing generic exception 
directly means we could not know what exception happened exactly. Also, we have 
to catch generic exception in our class, it is not a proper way. Ref to 
http://www.javaworld.com/javaworld/jw-10-2003/jw-1003-generics.html

And I have look the source code of DiskFileItem, which seems to be the only 
implementation of FileItem interface. In write method, FileUploadException will 
be thrown only when isInMemory() return false and getStoreLocation() is null, 
other exceptions are thrown directly without any handle, though the comment 
above FileUploadException thrown sentence is "For whatever reason we cannot 
write file to disk."

I think a proper way of error handling in write method is to throw 
IllegalArgumentException and FileUploadException. IllegalArgumentException will 
be thrown if file argument is null, and other exceptions caused inside write 
method will be wrapped as FileUploadException and re-throw.

Anyway, FileUploadException will be thrown "For whatever reason we cannot write 
file to disk.", right?

Please point out any mistake if I'm wrong, I really appreciate your works. :)



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to