Ruby:
Xử lý lỗi
Làm Thế Nào:
Ruby sử dụng begin
, rescue
, ensure
, và end
để xử lý lỗi. Bạn bọc đoạn code rủi ro trong begin
và end
. Nếu xảy ra lỗi, rescue
sẽ hoạt động.
begin
# Đoạn code rủi ro ở đây.
puts 10 / 0
rescue ZeroDivisionError => e
puts "Oops! Bạn không thể làm điều đó: #{e.message}"
ensure
puts "Cái này luôn luôn chạy, lỗi hay không."
end
Kết Quả Mẫu:
Oops! Bạn không thể làm điều đó: chia cho 0
Cái này luôn luôn chạy, lỗi hay không.
Sâu Hơn
Lịch sử, xử lý lỗi trong ngôn ngữ lập trình đã phát triển đáng kể, với ngôn ngữ cổ điển thường có cơ chế thô sơ hoặc không tồn tại. Xử lý ngoại lệ của Ruby được lấy cảm hứng từ các ngôn ngữ như Python và Smalltalk.
Các phương thức khác để begin-rescue
trong Ruby bao gồm sử dụng rescue
trong định nghĩa phương thức hoặc sử dụng throw
và catch
cho kiểm soát dòng chảy không tiêu chuẩn, mặc dù chúng không được sử dụng cho xử lý lỗi điển hình.
Một chi tiết thú vị: ngoại lệ của Ruby là đối tượng (thể hiện của lớp Exception
và các lớp con của nó), vì vậy bạn có thể định nghĩa các lớp lỗi tùy chỉnh và làm nhiều hơn là chỉ ghi lỗi — bạn có thể mang theo trạng thái phong phú trong chương trình cho việc xử lý lỗi mạnh mẽ hơn.
Xem Thêm
- Tài liệu của Ruby về ngoại lệ và xử lý lỗi: ruby-doc.org
- Hướng dẫn chi tiết về các phương pháp hay nhất khi xử lý lỗi trong Ruby: thoughtbot.com