BUG-731: do not use raw exceptions

Instead of throwing Exception, but use Preconditions. Also remove
declaration of Exception being thrown, and throw concrete exceptions.

Change-Id: I861e7c6d93080ba01ef9474ccd9dbf1b443f9e2d
Signed-off-by: Robert Varga <rovarga@cisco.com>
Merge "BUG-731: do not use raw exceptions"