Actually, we need to distinguish whether the patch is already applied or it could not be applied. The "patch already applied" should not throw an exception, because if the patch is applied, everything is ok, and the script needs to try to apply the next patch for the project. So, if an exception is fired, FALSE should be returned always in catch block, because the script hasn't completed its job.
This is improved version of pull request https://bitbucket.org/davereid/drush-patchfile/pull-requests/9/process-multiple-patches-even-if-one-of/diff
Actually, we need to distinguish whether the patch is already applied or it could not be applied. The "patch already applied" should not throw an exception, because if the patch is applied, everything is ok, and the script needs to try to apply the next patch for the project.
So, if an exception is fired, FALSE should be returned always in catch block, because the script hasn't completed its job.