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.