Rexx - Xử lý lỗi

Rexx cũng có khả năng xử lý lỗi như trong các ngôn ngữ lập trình khác.

Sau đây là một số tình trạng lỗi khác nhau được thấy trong Rexx.

  • ERROR - Điều này thậm chí được nâng lên bất cứ khi nào một lệnh được gửi đến hệ điều hành dẫn đến lỗi.

  • FAILURE - Điều này thậm chí còn được nâng lên bất cứ khi nào một lệnh được gửi đến hệ điều hành dẫn đến lỗi.

  • HALT- Điều này thường được nâng lên bất cứ khi nào một hoạt động phụ thuộc vào một hoạt động khác. Một ví dụ là nếu hoạt động I / O bị tạm dừng vì bất kỳ lý do gì.

  • NOVALUE - Sự kiện này được đưa ra khi một giá trị chưa được gán cho một biến.

  • NOTREADY - Điều này được tạo ra bởi bất kỳ thiết bị I / O nào chưa sẵn sàng chấp nhận bất kỳ hoạt động nào.

  • SYNTAX - Sự kiện này được nêu ra nếu có bất kỳ lỗi cú pháp nào trong mã.

  • LOSTDIGITS - Sự kiện này được nêu ra khi một phép tính số học dẫn đến mất chữ số trong quá trình thực hiện.

Lỗi bẫy

Lỗi được mắc kẹt với sự trợ giúp của lệnh tín hiệu. Hãy xem cú pháp và một ví dụ về điều này.

Cú pháp

signal on [Errorcondition]

Ở đâu,

  • Errorcondition - Đây là điều kiện lỗi được đưa ra ở trên.

Thí dụ

Hãy xem một ví dụ về điều này.

/* 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'

Trong ví dụ trên, trước tiên chúng ta bật các tín hiệu lỗi. Sau đó, chúng tôi thêm một câu lệnh sẽ dẫn đến lỗi. Sau đó, chúng tôi có nhãn bẫy lỗi để hiển thị thông báo lỗi tùy chỉnh.

Kết quả của chương trình trên sẽ như hình dưới đây.

An error has occurred.

Một ví dụ về mã lỗi được hiển thị trong chương trình sau.

/* 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

Kết quả của chương trình trên sẽ như hình dưới đây.

An error has occured 
40 
6