Pipeline - load throws IOException instead of FileNotFoundException if file not found when run in agent

Article ID:230611487
1 minute readKnowledge base

Issue

Pipeline load directive throws IOException instead of FileNotFoundException if file not found when run in agent.

Resolution

If using a try / catch block to determine the root cause of the exception, you need to unwrap the IOException to uncover the root cause.

Example:

node {
    try {
    load 'filethatdoesnotexist.ext'
    } catch(FileNotFoundException e) {
        // do something
    } catch(IOException e) {
        if(e.getCause() instanceof FileNotFoundException) {
            // Inner exception is FileNotFoundException
            // do something
        } else {
            // do something else
        }
    }
}