Clipper On Line • Ver Tópico - O objeto error

O objeto error

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

O objeto error

Mensagempor Vlademiro » 14 Jan 2019 15:29

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 ?
Avatar de usuário

Vlademiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 749
Data de registro: 11 Jul 2005 02:46
Curtiu: 22 vezes
Mens.Curtidas: 62 vezes

O objeto error

Mensagempor JoséQuintas » 14 Jan 2019 16:52

Sim.

ProcName( n ) e ProcLine( n )

Sendo que pode pegar toda a pilha de procedures/functions.

nCont := 2
DO WHILE ! Empty( ProcName( nCont ) )
   ? ProcName( nCont ), ProcLine( nCont )
   nCont++
ENDDO


Uma olhada na errorsys do Harbour pode ser útil.

https://github.com/vszakats/harbour-core/blob/master/src/rtl/errsys.prg
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

O objeto error

Mensagempor Vlademiro » 15 Jan 2019 06:56

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 :

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


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
Avatar de usuário

Vlademiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 749
Data de registro: 11 Jul 2005 02:46
Curtiu: 22 vezes
Mens.Curtidas: 62 vezes

O objeto error

Mensagempor Jairo Maia » 15 Jan 2019 08:35

Olá Vlademiro,

Vlademiro escreveu:Se eu botar PROCLINE aqui ele vai dar essa linha e não a linha do erro.
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:
? ProcName( 2 )
? ProcLine( 2 )
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().
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)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

O objeto error

Mensagempor Vlademiro » 15 Jan 2019 10:14

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.
Avatar de usuário

Vlademiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 749
Data de registro: 11 Jul 2005 02:46
Curtiu: 22 vezes
Mens.Curtidas: 62 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 8 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro