Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/327912/newLayout.css
Portuguese

Pagetitle
ErrorBlock
ErrorBlock

Função: ErrorBlock

Recupera e/ou define um bloco de código para ser avaliado quando ocorrer um erro em tempo de execução.

ErrorBlock ( [ bErrorHandler] ) --> bRet

NomeTipoDescriçãoObrigatórioReferência
bErrorHandlerBloco de códigoIndica o bloco de código que será executado sempre que houver um erro em tempo de execução. Quando o bloco de código é avaliado, esse parâmetro é passado na forma de um objeto erro como argumento pelo sistema.
    bRet(codeblock)
  • Retorna o bloco de código de tratamento de erro corrente.

Essa função define a atuação de um manipulador (handler) de erros sempre que ocorrer um erro em tempo de execução. Para isso, o manipulador de erro, é especificado com um bloco de código da seguinte forma

...

:

{ |<objError>| <lista de

...

expressoes>, ...} 

...

Sendo:

<objError>

...

é um error object que

...

contém informações sobre o erro. Dentro

...

do bloco de código,

...

é possível enviar mensagens ao error object para

...

obter informações sobre o erro. Porém, se o bloco de tratamento de erros retornar verdadeiro (.T.),

...

a operação que falhou é repetida; caso contrário, falso (.F.),

...

o processamento recomeçará.

Se não for especificado nenhum bloco de código, no parâmetro em <bErrorHandler>, utilizando a função ErrorBlock(), e ocorrer um erro em tempo de execução, o bloco de tratamento de erros padrão é avaliado. Este manipulador de erros exibirá uma mensagem descritiva na tela, ajusta a função ErrorLevel para 1, e depois sairá do programa (QUIT).

Como

...

essa função retorna o bloco de tratamento ao de erros corrente, é possível especificar um bloco de tratamento de erros para uma operação gravando-se o bloco de manipulação de erros correntes e depois recuperando-o após o final da operação. Além disso, uma importante conseqüência do fato de os blocos de tratamento de erros serem especificados como blocos de código, é que podem ser passados para rotinas e funções definidas por usuário e depois retornadas como valores.

User function TestError()// Salva bloco de código do tratamento de erroLocal oError := ErrorBlock({|e|;      MsgAlert("Mensagem de Erro: " +chr(10)+ e:Description)})               cExpr := "aaa"If !Empty(cExpr)  Begin Sequence    // Força erro, enviando caracter onde deveria ser numérico    cNum := StrZero(cExpr,5)    MsgAlert( cNum )     Return .T.  End SequenceEndIfErrorBlock(oError)Return .F.
Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server