[ 
https://issues.apache.org/jira/browse/IO-661?focusedWorklogId=753084&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-753084
 ]

ASF GitHub Bot logged work on IO-661:
-------------------------------------

                Author: ASF GitHub Bot
            Created on: 05/Apr/22 20:03
            Start Date: 05/Apr/22 20:03
    Worklog Time Spent: 10m 
      Work Description: garydgregory closed pull request #111: [IO-661] 
FileUtils throws inconsistent exceptions
URL: https://github.com/apache/commons-io/pull/111




Issue Time Tracking
-------------------

    Worklog Id:     (was: 753084)
    Time Spent: 2h 10m  (was: 2h)

> FileUtils throws inconsistent exceptions
> ----------------------------------------
>
>                 Key: IO-661
>                 URL: https://issues.apache.org/jira/browse/IO-661
>             Project: Commons IO
>          Issue Type: Bug
>          Components: Utilities
>    Affects Versions: 2.6
>            Reporter: Hao Zhong
>            Priority: Major
>             Fix For: 2.9.0
>
>          Time Spent: 2h 10m
>  Remaining Estimate: 0h
>
> The FileUtils throws inconsistent exceptions, when an input is not a 
> directory. 
> The copyFileToDirectory throws IllegalArgumentException:
>  
> {code:java}
>   public static void copyFileToDirectory(final File srcFile, final File 
> destDir, final boolean preserveFileDate)
>             throws IOException {
>         if (destDir == null) {
>             throw new NullPointerException("Destination must not be null");
>         }
>         if (destDir.exists() && destDir.isDirectory() == false) {
>             throw new IllegalArgumentException("Destination '" + destDir + "' 
> is not a directory");
>         }
>         final File destFile = new File(destDir, srcFile.getName());
>         copyFile(srcFile, destFile, preserveFileDate);
>     }
> {code}
> The other methods throw IOException:
>  
>  
> {code:java}
>  public static void moveFileToDirectory(final File srcFile, final File 
> destDir, final boolean createDestDir)
>             throws IOException {
>         validateMoveParameters(srcFile, destDir);
>         if (!destDir.exists() && createDestDir) {
>             destDir.mkdirs();
>         }
>         if (!destDir.exists()) {
>             throw new FileNotFoundException("Destination directory '" + 
> destDir +
>                     "' does not exist [createDestDir=" + createDestDir + "]");
>         }
>         if (!destDir.isDirectory()) {
>             throw new IOException("Destination '" + destDir + "' is not a 
> directory");
>         }
>         moveFile(srcFile, new File(destDir, srcFile.getName()));
>     }
> {code}
> I feel that IOException is more reasonable. Although the messages are the 
> same, the different exception can cause problems when programmers catch the 
> thrown exceptions. 
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to