 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mar 28 Mar, 2017 6:26 pm Asunto: Control de excepciones |
|
|
Llevo meses dándole vueltas al código que puso Jesús Gandía en Tips & Tricks, Controlar Excepciones con volcado a fichero.
Con ser bueno (muy bueno) me parecía demasiado enrevesado lo de andar guardando en una estructura la información que puede hacernos falta. Buscando por la red he ido a dar con un código para Delphi pero usa algunas funciones que, al menos en BCB 6, no existen:
| Código: | unit uException;
interface
uses SysUtils;
type
TAppExceptHandler = class(TObject)
public
procedure Handle(Sender: TObject; E: Exception);
end;
var
AppExceptHandler: TAppExceptHandler;
implementation
uses TypInfo, Dialogs;
procedure TAppExceptHandler.Handle(Sender: TObject; E: Exception);
var
Ptd: PTypeData;
begin
Ptd := GetTypeData(Sender.ClassInfo);
if Assigned(Ptd) then
ShowMessage(Format('Se produjo un error en %s%s%s',[Ptd^.UnitName, #10, E.Message]))
else
//...
;
end;
end. |
Me refiero en concreto a la función GetTypeData que no he sido capaz de ver como funciona. ¿Algún alma caritativa que me pueda "traducir" ese código? ENtiendo lo que hace y como, pero se me escapan esas cosas que son exclusivas (o no, seguro que lo entiendo mal) de Delphi. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mar 28 Mar, 2017 9:15 pm Asunto: Re: Control de excepciones |
|
|
| Angel escribió: | | que, al menos en BCB 6, no existen |
Si existe, pero esta poco documentado y es algo más enrevesado que en Delphi. Un ejemplo:
| Código: | // Añadimos la cabecera: #include <TypInfo.hpp>
PTypeData Ptd = GetTypeData((PTypeInfo)Form1->ClassInfo());
if (Ptd)
ShowMessage("UnitName: " + String(*(PShortString)&Ptd->UnitName)); |
En el siguiente enlace tienes más información interesante sobre este tema:
http://blong.com/Conferences/BorCon2001/C++RTTI/3254.htm |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mie 29 Mar, 2017 8:43 am Asunto: Re: Control de excepciones |
|
|
| _Leo escribió: |
Si existe, pero esta poco documentado y es algo más enrevesado que en Delphi. Un ejemplo: |
Gracias Leo. Efectivamente es lamentable la documentación (o falta de ella) de la que adolece Borland; y por lo que he visto con las versiones modernas (XEx) no han mejorado mucho. Y el enlace que me pasas lo vi ayer por la tarde; lo tengo guardado.
Voy a hacer pruebas a ver si encuentro un buena manera de hacer un log aprovechando todos estos métodos. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|