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

Sự khác biệt giữa Module#remove_methodModule#undef_method là gì?

senior

Điều gì xảy ra nếu một block nhận hai đối số nhưng chỉ chấp nhận một đối số?

middle

Sự khác biệt giữa Array#mapArray#each trong Ruby là gì?

Bình luận

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

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