Làm cách nào để bạn dừng chương trình Ruby sớm?
Thông thường, một chương trình sẽ chạy cho đến khi hoàn tất xử lý tất cả các hướng dẫn.
Hoặc cho đến khi nó phát sinh một ngoại lệ không được xử lý.
Nhưng nếu bạn đang viết một chương trình Ruby không cần phải chạy mọi lúc , bạn có thể muốn dừng chương trình của mình sớm vì lý do này hay lý do khác.
Bạn có thể thực hiện việc này với exit
phương pháp.
Phương thức thoát này hoạt động như thế nào?
Hãy nói về điều đó!
Các cách khác nhau để dừng một chương trình
Khi bạn gọi exit
chương trình của bạn sẽ không dừng ngay lập tức.
Đây là những gì sẽ xảy ra :
Ruby tạo ra một SystemExit
ngoại lệ cho phép các phần khác trong chương trình của bạn có cơ hội được dọn dẹp.
Bạn có thể chạy mã này để xem trình diễn :
begin exit rescue SystemExit p 123 end
Bản in này 123
trước khi thoát.
Nếu bạn muốn chương trình của mình bỏ qua quá trình dọn dẹp này, bạn có thể sử dụng exit!
.
Đây là một ví dụ :
begin exit! rescue SystemExit p 123 end
Lưu ý rằng điều này sẽ không in 123
trước khi chương trình kết thúc.
Bạn cũng có thể sử dụng một phương pháp khác.
Nó được gọi là abort
.
Với phương pháp này, bạn có thể cung cấp thông báo lỗi.
Như thế này :
abort "No Bacon Left"
Cái nào giống với :
warn "No Bacon Left!" exit 1
warn
phương thức in thông báo lỗi thành lỗi chuẩn.
Nhưng đây là gì 1
đối số cho exit
?
Đó là chủ đề thảo luận tiếp theo!
Hiểu mã trạng thái
Khi một chương trình kết thúc, không chỉ là một chương trình Ruby mà còn BẤT KỲ chương trình nào, nó sẽ để lại một mã trạng thái.
Đây là những điều bạn cần biết :
- Mã trạng thái của
0
nghĩa là chương trình đã kết thúc bình thường - Các mã trạng thái khác (không phải
0
) được sử dụng để báo hiệu một tình trạng lỗi - Hiệu quả của việc trả về mã trạng thái khác 0 tùy thuộc vào môi trường hiện tại của bạn
Điều này hữu ích bởi vì hệ điều hành hoặc các chương trình thông thường, có thể sử dụng mã trạng thái này để theo dõi, ghi nhật ký và thậm chí tự động khởi động lại chương trình bị lỗi.
Trong Linux, bạn có thể sử dụng echo $?
để tìm mã trạng thái thoát của chương trình cuối cùng.
Hãy quay lại Ruby :
Khi bạn gọi exit
mã trạng thái là 0
theo mặc định.
Bạn có thể chuyển một mã trạng thái khác làm đối số.
Đó là lý do tại sao khi bạn gọi abort
mã trạng thái được đặt thành 1
, abort
được sử dụng để báo hiệu lỗi.
Dừng vòng lặp
Nếu bạn không muốn dừng toàn bộ chương trình mà chỉ dừng một vòng lặp, thì bạn phải sử dụng thứ gì đó khác.
Bạn có thể sử dụng break
từ khóa:
while 1 == 1 break end
Điều này cũng hoạt động bên trong các khối, không chỉ vòng lặp while.
Thoát khỏi một phương pháp
Các phương thức Ruby kết thúc tự nhiên trên dòng mã cuối cùng của chúng.
Nếu bạn muốn thoát sớm hơn…
Sử dụng return
từ khóa.
Ví dụ :
def apples return "I had my two apples today" "bacon" end
Mã này không bao giờ đến được "bacon"
vì return
sớm .
Phần thưởng:Dừng một vòng lặp vô hạn
Nó xảy ra.
Đôi khi bạn quên tăng bộ đếm và tạo ra vòng lặp vô hạn .
Để dừng chương trình, bạn có thể nhấn tổ hợp phím:
CTRL+C
Tóm tắt
Bạn đã học về exit
trong Ruby, abort
phương pháp, mã trạng thái thoát và cách thoát ra khỏi vòng lặp.
Đừng quên chia sẻ bài viết này để nhiều người cùng thưởng thức.
Cảm ơn vì đã đọc! 🙂