Sự khác biệt giữa throw/catch
và raise/rescue
là gì?
Sự khác biệt giữa throw/catch
và raise/rescue
là gì?
Trong Ruby, throw/catch
và raise/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:
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ỗithrow
đượ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ữathrow
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
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
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào