Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
themeEclipse
BEGIN SEQUENCE
          ...
          < instruções >
          ...
          [ BREAK [ < expressão > ] ]
          ...
          < instruções >
          ...
          [ RECOVER [ USING < variável > ] ]
          ...
          < instruções >
          ...
END SEQUENCE


02. PARÂMETROS

Nome

Tipo

Descrição

Obrigatório

Referência

BEGIN SEQUENCEExpressãoDefine o inicio do bloco de código contendo o controle de erroSimNão

BREAK < expressão >

Expressão

Desvia o fluxo de execução para a linha de instrução imediatamente seguinte ao próximo comando RECOVER, se houver um especificado. Caso não exista, o fluxo de execução será desviado para a linha de instrução imediatamente seguinte ao comando END SEQUENCE.

A expressão ( < expressão > ) é um valor que será atribuído à variável ( < variável > ) especificada pela cláusula USING do comando RECOVER.

Não

Não
RECOVER USING < variável >VariávelDefine um ponto de recuperação, dentro do bloco de sequência, para o qual o fluxo de execução será desviado após a execução de um comando BREAK. Se a cláusula USING < variável > for especificada, esta variável receberá o valor fornecido pelo comando BREAK.NãoNão
END SEQUENCEExpressãoDefine o fim do bloco de sequência. Após a execução do comando BREAK, o fluxo de execução é desviado para a primeira linha de instrução após o comando END SEQUENCE, caso não tenha sido especificado um comando RECOVER dentro da sequência.SimNão


03. EXEMPLOS


A estrutura típica do comando BEGIN SEQUENCE é exemplificada abaixo:

...

Bloco de código
user function Example

  // Define um code block de tratamento de erro e guarda o code block atual
  Local oError := Errorblock({|e| Break(e) })

  Begin Sequence
    var := var+1 // variavel não existe, logo, vai dar erro nesta linha
    conout( "Recover... Isto NÃO DEVE ser executado, de acordo com o break lançado no ErrorBlock" )
    return .T.
  Recover
  conout("Isto DEVE ser executado... entrou no recover")
  End Sequence

  conout( "Isto DEVE ser executado" )
  
  // Restaura o code block de tratamento de erro original
  ErrorBlock( oError )
Return 0 


04. VEJA TAMBÉM