The "yellow" ASP.NET error page is probably due your "dev" web.config configuration that shows up raw errors (see http://sharepoint.stackexchange.com/questions/73788/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 :(