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: 20453
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 2824
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
- Curtiu: 2 vezes
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.
