I second this – throwing an error results in a crash. Common usecase for beforeCreate() would be to modify the params and perform simple operations.
With the current functionality you need to copy and override the default controller and put the logic there instead, which seems overkill for a lot of use-cases.