Fix [SonarQube] Remove redundant 'throws IllegalArgumentException'
declaration (IllegalArgumentException is a RunTimeException)
Fix [SonarQube] Throws declarations should not be redundant (Remove the
declaration of thrown exception 'java.lang.IllegalArgumentException'
which is a runtime exception)
Format per coding convention
Update javadoc
Add logger
Fix [SonarQube] Exception handlers should provide some context and
preserve the original exception
Format per coding convention
Refactor exeption parameter from concatenated string to formatted string