The "yellow" ASP.NET error page is probably due your "dev" web.config configuration that shows up raw errors (see How to set customErrors attribute in sharepoint 2013?How to set customErrors attribute in sharepoint 2013?).
However, ErrorMessage will always end-up with an error message to the end-user, just less ugly than the yellow one. No way to display a nice warning box :(