Câu hỏi phỏng vấn Ruby
Câu hỏi

Sự khác biệt giữa throw/catchraise/rescue là gì?

Câu trả lời

Trong Ruby, throw/catchraise/rescue đều là cơ chế để xử lý các tình huống ngoại lệ, nhưng chúng được sử dụng trong các trường hợp khác nhau và có những đặc điểm riêng biệt:

Sử dụng throw/catch

  • throw/catch được sử dụng để thoát khỏi một khối lệnh hoặc phương thức một cách nhanh chóng khi không cần thực hiện thêm công việc nào nữa. Điều này thường được sử dụng trong các tình huống kiểm soát luồng chương trình, chứ không phải để xử lý lỗi
  • Khi throw được gọi, nó sẽ "ném" việc thực thi lên khối catch tương ứng, phá vỡ tất cả các khối lệnh và lời gọi phương thức ở giữa
  • throw có thể có một "payload" là giá trị thứ hai được truyền vào, và giá trị này sẽ trở thành giá trị trả về của khối catch

Sử dụng raise/rescue

  • raise/rescue được sử dụng để xử lý các lỗi hoặc ngoại lệ (exceptions) trong chương trình. Khi một lỗi xảy ra, `raise...
middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Giải thích sự khác biệt giữa việc sử dụng redoretry trong Ruby?

senior

Sự khác biệt giữa BasicObject#instance_evalBasicObject#instance_exec là gì?

senior

Điều gì xảy ra với một hằng số không được gán giá trị?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào