The problem is that DA errors are considered as "internal errors" by the apex error handling function, and there is no handle that passes a message to the users. To fix this, you must choose an exception number, for example -20999, and create a handle in the internal section of the function. When this is done you can pass your message with raise_application_error(-20999,<message>);
For a complete description go to PLSQL error messages for the APEX end user