Página 1 de 1
Try Catch
Enviado: 12 Jul 2012 15:01
por bencz
Olá (:
como posso fazer para o catch voltar ao ponto que originou o problema, corrigindo-o igual faz o errorsys ??
Isso eh possivel ??
Quem faz uso do try....catch como esta tratando isto nestes casos
Alexandre
Try Catch
Enviado: 12 Jul 2012 15:50
por Imatech
Exemplo...
Código: Selecionar todos
PROCEDURE RM_TEST_RECOVER( bBlock )
LOCAL xResult
LOCAL oError
LOCAL bOldError := ErrorBlock( {|oError| Break( oError ) } )
BEGIN SEQUENCE
xResult := Eval( bBlock )
RECOVER USING oError
xResult := ErrorMessage( oError )
END SEQUENCE
ErrorBlock( bErrorOld )
RETURN
Try Catch
Enviado: 12 Jul 2012 16:06
por bencz
você poderia postar um exemplo do uso ?
Try Catch
Enviado: 12 Jul 2012 16:30
por sygecom
Exemplo:
Código: Selecionar todos
TRY
DBcreate('tabela', aVETOR, 'DBFCDX') // se der erro aqui, cai no CATCH
CATCH
MsgStop("Erro ao Criar tabela")
__Quit()
END
Try Catch
Enviado: 12 Jul 2012 16:34
por Imatech
Olá Bencz !
O exemplo acima já é o prototipo pronto para uso...
Qquer dúvida esteja a vontade para novo post...
hbcompat.ch
/* TRY / CATCH / FINALLY / END */
#xcommand TRY => BEGIN SEQUENCE WITH {| oErr | Break( oErr ) }
#xcommand CATCH [<!oErr!>] => RECOVER [USING <oErr>] <-oErr->
#xcommand FINALLY => ALWAYS
Try Catch
Enviado: 12 Jul 2012 16:44
por bencz
Bom, sobre esse protótipo eu já havia visto, mas, achei interessante, pois, eu coloquei um alert no errorsys.ch, bem no começo do código para mostrar o numero do erro, mas, quando eu uso o try, ele nao mostra o numero do erro, mas ele cai no catch...
será que não tem algo errado neste protótipo ?
Try Catch
Enviado: 12 Jul 2012 17:20
por Imatech
Olá Bencz !
Nessa situação errorsys.ch não é utilizado no tratamento de erros no bloco: Begin...Recover.. Always...End (Try...Catch...Finally...end)
Então o uso de alguma mensagem ( Alert ) sera após Recover/Catch...
Alguem me corrija se estiver enganado...
Try Catch
Enviado: 12 Jul 2012 17:34
por bencz
Entao, como funciona ?