Yo, para eso, extiendo Exception y añado al constructor un par de parámetros para indicar el archivo y el procedimiento y función. Por ejemplo:
Código Delphi
[-]PROCEDURE Procedimiento;
BEGIN
TRY
EXCEPT
ON Error: Exception DO RAISE MiClaseExcepcion.Create ('Unit.pas', 'Procedimiento', Error.Message);
ON Error: MiClaseExcepcion DO RAISE Error;
END;
END;
No es lo mismo, pero ayuda bastante.