Á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

Expand ALL

Função: ErrorBlock

Recupera

e/ou

define

um

bloco

de

código

para

ser

avaliado

quando

ocorrer

um

erro

em

tempo

de

execução.

Sintaxe

Bloco de código
collapsefalse
ErrorBlock( [ bErrorHandler ] )
--> bRet

Parâmetros

/Elementos 

Nome

Tipo

Descrição

Obrigatório

Referência

bErrorHandler

Bloco

bloco de código

Indica o bloco

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.

 

 

Retorno

Nome

 

Tipo

Retorno

Descrição

bRet

(codeblock)

bloco de código

Retorna o bloco de código de tratamento de erro corrente.

Observações

  • 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>

expressões>, ...}

 

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.

 

Exemplos

Bloco de código
languagecpp
themeEclipse
title
linenumbers
Exemplo
true
linenumbers
collapse
true
false
User 
function
Function 
TestError
Exemplo()
  // Salva bloco de código do tratamento de erro
  Local oError := ErrorBlock({|e|
;
 MsgAlert("Mensagem de Erro: " +chr(10)+ e:Description)})
 

  cExpr := "aaa"

  If !Empty(cExpr)
    Begin Sequence    // Força erro, enviando 
caracter
carácter onde deveria ser numérico
    cNum := StrZero(cExpr,5)
    MsgAlert( cNum )
    Return .T.
    End Sequence
  EndIf

  ErrorBlock(oError)
Return
.F. 

Abrangência

Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10

, ByYou Application Server