You may be able to use the advanced operator DELETEin 10g, which includes error logging.
DBMS_ERRLOG ( : ORA_ERR_MESG$, ..., ORA_ERR_TAG$)
execute dbms_errlog.create_error_log('parent', 'parent_errlog');
LOG ERRORS delete , :
delete from parent
log errors into parent_errlog ('holding-breath')
reject limit unlimited;
"hold-breath" ORA_ERR_TAG$.
.
, , parent_errlog, parent. , :