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