commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zixiang Tang (JIRA)" <j...@apache.org>
Subject [jira] Created: (FILEUPLOAD-184) Generic exception thrown in FileItem#write method
Date Tue, 03 Aug 2010 11:08:16 GMT
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.


Mime
View raw message