Rexx - Tratamento de Erros

Rexx também tem a capacidade de trabalhar no tratamento de erros como em outras linguagens de programação.

A seguir estão algumas das várias condições de erro que são vistas no Rexx.

  • ERROR - Este evento é gerado sempre que um comando enviado ao sistema operacional resulta em um erro.

  • FAILURE - Este evento é gerado sempre que um comando enviado ao sistema operacional resulta em uma falha.

  • HALT- Normalmente é gerado sempre que uma operação depende de outra operação. Um exemplo é se uma operação de E / S está sendo interrompida por qualquer motivo.

  • NOVALUE - Este evento é gerado quando um valor não foi atribuído a uma variável.

  • NOTREADY - Isso é gerado por qualquer dispositivo de E / S que não esteja pronto para aceitar qualquer operação.

  • SYNTAX - Este evento é gerado se houver algum erro de sintaxe no código.

  • LOSTDIGITS - Este evento é gerado quando uma operação aritmética resulta em perda de dígitos durante a operação.

Erros de trapping

Os erros são capturados com a ajuda do comando de sinal. Vamos dar uma olhada na sintaxe e um exemplo disso.

Sintaxe

signal on [Errorcondition]

Onde,

  • Errorcondition - Esta é a condição de erro fornecida acima.

Exemplo

Vamos dar uma olhada em um exemplo disso.

/* Main program */ 
signal on error 
signal on failure 
signal on syntax 
signal on novalue beep(1) 
signal off error 
signal off failure
signal off syntax 
signal off novalue 
exit 0 
error: failure: syntax: novalue: 
say 'An error has occured'

No exemplo acima, primeiro ligamos os sinais de erro. Em seguida, adicionamos uma instrução que resultará em um erro. Em seguida, temos o rótulo de detecção de erro para exibir uma mensagem de erro personalizada.

A saída do programa acima será conforme mostrado abaixo.

An error has occurred.

Um exemplo de códigos de erro é mostrado no programa a seguir.

/* Main program */ 
signal on error 
signal on failure 
signal on syntax 
signal on novalue beep(1) 
exit 0 
error: failure: syntax: novalue: 

say 'An error has occured' 
say rc 
say signal

A saída do programa acima será conforme mostrado abaixo.

An error has occured 
40 
6