I think exception will surface "automatically" if you throw.
Spark.showErrorMessage() is also an alternative to report errors to the user.
(non automatic reporting is probably the best way to do it since you can translate the exception to a human readable message).