Amigos, estou com uma dúvida no objeto erro que é gerado quando uma exceção é lançada. Eu estou tentando pegar a linha do erro mas não descobri como fazer.
Até agora tenho o seguinte :
oErr:Description
oErr:operation
oErr:GenCode
oErr:Args
oErr:subsystem
oErr:subcode
Não teria algo como oErr:Line ?
O objeto error
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
O objeto error
Sim.
ProcName( n ) e ProcLine( n )
Sendo que pode pegar toda a pilha de procedures/functions.
Uma olhada na errorsys do Harbour pode ser útil.
https://github.com/vszakats/harbour-cor ... errsys.prg
ProcName( n ) e ProcLine( n )
Sendo que pode pegar toda a pilha de procedures/functions.
Código: Selecionar todos
nCont := 2
DO WHILE ! Empty( ProcName( nCont ) )
? ProcName( nCont ), ProcLine( nCont )
nCont++
ENDDO
https://github.com/vszakats/harbour-cor ... errsys.prg
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
O objeto error
Quintas, obrigado pelo retorno, mas desse jeito não dá certo. Deixa eu colocar mais um detalhe que eu esqueci de dizer:
Eu estou desenvolvendo um programa baseado no httpd que veio no contrib. Esse programa, ao que me consta, já vem com a sua errorsys configurada e eu não quero mecher nela. Eu queria a linha do erro a partir do objeto error. Vou fazer um rascunho abaixo :
Teria algum local onde eu pegasse os métodos da classe oErr ? A minha necessidade é a linha de onde o erro ocorreu. Algo tipo oErr:Line
Eu estou desenvolvendo um programa baseado no httpd que veio no contrib. Esse programa, ao que me consta, já vem com a sua errorsys configurada e eu não quero mecher nela. Eu queria a linha do erro a partir do objeto error. Vou fazer um rascunho abaixo :
Código: Selecionar todos
begin sequence with __BreakBlock()
Aqui minha rotina
recover using oErr
Aqui eu pegaria o erro
oErr:Description , etc.
Eu queria uma forma de pegar a linha.
Se eu botar PROCLINE aqui ele vai dar essa linha e não a linha do erro.
end sequence
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
O objeto error
Olá Vlademiro,
Você terá exatamente a procedure e linha onde ocorreu o erro. A rigor, a procedure e linha que chamou a função atual, no caso o ERRORSYS().
Se você não passar parâmetro retornará a linha da procedure corrente. Não sei como você está organizando sua função de erro, mas no caso de usar o ERRORSYS(), a posição 2 será a procedure que chamou a função ERRORSYS(), então se fizer:Vlademiro escreveu:Se eu botar PROCLINE aqui ele vai dar essa linha e não a linha do erro.
Código: Selecionar todos
? ProcName( 2 )
? ProcLine( 2 )Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
O objeto error
Esse é o problema Jairo, eu não estou usando o errorsys. Creio que para ter o número da linha o errorsys precisa entrar na jogada. Obrigado pelo retorno.
