Descrição
Use o comando HANDLE CONDITION para especificar o rótulo para o qual o controle deve ser passado se ocorrer uma condição. Você deve incluir o nome da condição e, opcionalmente, um rótulo para o qual o controle deve ser passado se a condição ocorrer.
Se você omitir o parâmetro label, qualquer comando HANDLE CONDITION para a condição será desativado e a ação padrão será executada se a condição ocorrer. Isso é independente da configuração da condição de ERRO generalizada.
Você deve garantir que o comando HANDLE CONDITION seja executado antes do comando que pode resultar na condição associada.
Você não pode incluir mais de 16 condições no mesmo comando. As condições devem ser separadas por pelo menos um espaço. Você deve especificar quaisquer condições adicionais em outros comandos HANDLE CONDITION .
Se ocorrer uma condição que não esteja especificada em um comando HANDLE CONDITION ou IGNORE CONDITION , a ação padrão será executada. No entanto, se a ação padrão para essa condição encerrar a tarefa de forma anormal e a condição ERROR tiver sido especificada, a ação para ERROR será executada.
O rótulo recebe o controle na mesma chave de execução que a chave de execução em que o programa estava sendo executado quando o comando HANDLE CONDITION foi emitido.
Escopo:
O comando HANDLE CONDITION para uma determinada condição se aplica apenas ao programa em que está especificado. O comando HANDLE CONDITION permanece ativo enquanto o programa está sendo executado ou até que uma das seguintes situações ocorra:
- Um comando IGNORE CONDITION para a mesma condição é encontrado. O comando HANDLE CONDITION é substituído.
- Outro comando HANDLE CONDITION para a mesma condição é encontrado. O novo comando substitui o anterior.
- Um comando LINK é executado para chamar outro programa CICS. As opções HANDLE CONDITION não são herdadas pelo programa vinculado ao.
O comando HANDLE CONDITION é temporariamente desativado pela opção NOHANDLE ou RESP em um comando.
Considerações de idioma
Em um programa aplicativo de linguagem assembler, quando uma ramificação para um rótulo é causada por uma condição, os registros no programa aplicativo são restaurados para seus valores no programa no ponto em que o comando que causou a condição é emitido.
Em um programa de aplicação PL / I, uma ramificação para um rótulo em um procedimento inativo ou em um bloco inicial inativo, causado por uma condição, produz resultados imprevisíveis.
Opções:
condition(label)
Especifica o nome da condição. O rótulo especifica o local no programa a ser ramificado se a condição ocorrer.
Para mais informações sobre as condições, consulte os campos do BEI .
Exemplos:
O exemplo a seguir mostra como lidar com condições como DUPREC e LENGERR que podem ocorrer quando você usa um comando WRITE para adicionar um registro a um conjunto de dados. DUPREC é tratado como um caso especial. A ação padrão é executada para LENGERR (ou seja, a tarefa é finalizada de maneira anormal). Todas as outras condições são tratadas pela rotina de erros ERRHANDL.
EXEC CICS HANDLE CONDITION
ERROR(ERRHANDL)
DUPREC(DUPRTN) LENGERR