#912 reopened for master branch

#912
Okay. Well in general the guidance I would give is that if a checked exception should be considered completely fatal (ie you never recover from it but always crash with an error message), then you should always catch it and throw a KEMException rather than allowing it to propagate further up the call stack. Reserve rethrowing or propagating checked exceptions solely for cases when the code needs to catch exceptions of that specific type further up the call stack.