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

Dấu chấm than ! ở cuối một phương thức có ý nghĩa gì?

middle

Sự khác biệt giữa việc gọi block và gọi phương thức là gì?

senior

Khi nào bạn có thể gặp phải lỗi LocalJumpError?

Bình luận

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

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