🧠 Explicação
O comando EXEC CICS HANDLE CONDITION
permite interceptar condições específicas (como NOTFND
, DUPREC
, LENGERR
, entre outras) que podem ocorrer durante a execução de comandos CICS. Ao definir esse tratamento, você evita que a tarefa termine de forma anormal e consegue redirecionar o controle do programa para uma rotina específica, chamada de rótulo.
🔧 Usos mais comuns
-
Tratar erros esperados como tentativa de inserir um registro duplicado (
DUPREC
) ou não encontrado (NOTFND
). -
Evitar terminação anormal da tarefa quando condições previsíveis ocorrem.
-
Encaminhar o fluxo do programa para uma rotina personalizada de erro ou validação.
-
Centralizar o tratamento de erro em um único ponto, melhorando a manutenção do código.
🧾 Sintaxe
EXEC CICS HANDLE CONDITION
condicao1(rótulo1)
condicao2(rótulo2)
...
END-EXEC.
🔹 Para desativar o tratamento de uma condição:
EXEC CICS HANDLE CONDITION
LENGERR
END-EXEC.
💻 Exemplo prático
EXEC CICS HANDLE CONDITION
ERROR(TRATA-ERRO)
DUPREC(REGISTRO-DUPLICADO)
LENGERR
END-EXEC.
EXEC CICS WRITE
DATASET('CLIENTES')
FROM(AREA-CLI)
RIDFLD(CHAVE-CLI)
END-EXEC.
...
TRATA-ERRO.
DISPLAY "Erro inesperado no CICS".
GOBACK.
REGISTRO-DUPLICADO.
DISPLAY "Cliente já cadastrado!".
GOBACK.
📌 Regras
-
Você pode especificar no máximo 16 condições por comando
HANDLE CONDITION
. -
Para tratar mais de 16 condições, use vários comandos separados.
-
As condições tratadas com
HANDLE CONDITION
não são herdadas por programas chamados comLINK
. -
Um
HANDLE CONDITION
permanece ativo apenas no programa atual, até ser substituído por:-
Outro
HANDLE CONDITION
para a mesma condição; -
Um
IGNORE CONDITION
; -
Ou temporariamente suprimido por
NOHANDLE
ouRESP
.
-
-
Se nenhuma condição for tratada, a ação padrão é executada (geralmente abend).
💡 Dicas
-
Use
HANDLE CONDITION ERROR(rótulo)
para tratar qualquer condição não explicitamente capturada. -
Sempre defina o tratamento antes do comando que pode causar a condição.
-
Combine com
IGNORE CONDITION
quando quiser reverter um tratamento específico. -
Para testes e depuração, é útil redirecionar condições para um rótulo que apenas exibe o erro com
DISPLAY
.
✅ Conclusão
O comando EXEC CICS HANDLE CONDITION
é fundamental para tornar programas CICS mais robustos e resilientes. Ele evita abends inesperados, permite tratar erros com lógica de negócio apropriada e melhora a experiência do usuário e a estabilidade da aplicação. Use-o sempre que um comando puder gerar condições previsíveis e controláveis.