CICS - Tratamento de condições de exceção
Comando HANDLE CONDITION/p>
Formato do comando:
O comando acima é utilizado para especificar um parágrafo que receberá o controle caso uma condição de exceção ( erro de leitura/gravação em um arquivo ) ocorra. O tratamento de uma determinada exceção prevalece até que seja especificado outro 'HANDLE CONDITION' para a mesma exceção, ou se for executado o comando que ignore esta condição de exceção. A especificação de um 'HANDLE CONDITION' para uma exceção, não elimina o tratamento de outras condições de exceção anteriormente especificadas. Existe uma condição especial que engloba todas as condições de exceção que podem ocorrer, com exceção das condições de exceção que já foram especificadas no programa de aplicação, estaá condicao é 'ERROR'. Exemplo do comando:
EXEC CICS HANDLE CONDITION LENGERR (0100-LENGERR) DUPKEY (0200-DUPKEY) ERROR (0300-ERROR) END-EXEC.
Explicação do exemplo: Caso ocorra algum erro de tamanho em alguma funcao do COMMAND LEVEL, o controle do programa será desviado para o parágrafo '0100-LENGERR'. Caso haja registro em duplicata, o controle do programa será desviado para o paragrafo '0200-DUPKEY'. Caso ocorra algum outro tipo de erro que nao esteja previsto no comando, o controle do programa serÁ desviado para o paragrafo '0300-ERROR'.
Comando IGNORE CONDITION
O comando acima é utilizado para ignorar uma determinada condição de exceção. Caso ocorra a condição de exceção especificada a execução do programa continuará na instrucao seguinte a instrução que originou a condição de exceção.
Exemplo do comando:
EXEC CICS IGNORE CONDITION LENGERR END-EXEC.
Explicação do exemplo:
Caso ocorra algum erro de tamanho em alguma funcao do COMMAND LEVEL, apos a execução deste comando, o CICS irá ignora-lo, ou seja, o programa continuará com sua execução normalmente. Observação: Caso nao sejam codificados os comandos HANDLE e nem IGNORE CONDITION para uma determinada condição de exceção e esta vier a ocorrer, o programa cancelará.