Xử lý lỗi trong R là quá trình xử lý các lỗi không mong muốn có thể gây ra sự kết thúc bất thường của chương trình trong quá trình thực thi. Lỗi thường xảy ra nhất là khi mã được sử dụng cho kết quả không mong muốn, như nối hai chuỗi ký tự báo lỗi, chuyển kiểu dữ liệu,…
Chương trình báo lỗi vì không thể thực hiện phép toán cộng cho đối tượng không phải là số.
Kết quả cảnh báo trên cho biết rằng trong dữ liệu cần chuyển đổi thông qua hàm as.numeric() có đối tượng không phải là số, đối tượng này được gán không xác định NA. Một chương trình trong R bao gồm nhiều khối code kết hợp với nhau, việc kiểm tra các khối code có thể thực hiện tuần tự từ trên xuống dưới cho từng khối code. Kết quả một khối code khi thực thi cần xử lý sẽ có một trong các đặc điểm sau: lỗi, cảnh báo, thông báo.
Kiểm tra lỗi trong R
Kiểm tra lỗi trong chương trình là việc kiểm tra lỗi trong từng khối code tuần tự từ trên xuống dưới. Để kiểm tra lỗi trong khối code chúng ta sử dụng hàm tryCatch() hoặc withCallingHandlers() với các đối số là các hàm stop(), error(), warning(), message() và được xây dựng để biểu thị kết quả kiểm tra lỗi.
- Hàm tryCatch(): hàm xử lý và kiểm soát những gì xảy ra dựa trên các điều kiện.
- Hàm withCallingHandlers(): hàm được sử dụng để thay thế cho hàm tryCatch() nhằm xử lý các chương trình xử lý cục bộ.
Gỡ lỗi trong R
Gỡ lỗi trong R được thực hiện thông qua các hàm traceback(), browser(), recover().
Hàm traceback()
Hàm traceback() được sử dụng để cung cấp tất cả thông tin về cách hàm bị lỗi. Nó sẽ hiển thị tất cả các hàm được gọi trước khi lỗi xảy ra.
Hàm traceback() hiển thị lỗi trong quá trình đánh giá. Lỗi được sắp xếp từ dưới lên trên. Chúng ta có thể sử dụng hàm traceback() như một trình xử lý lỗi để hiển thị lỗi ngay lập tức mà không cần gọi nó.
Hàm browser()
Hàm browser() được chèn vào các hàm để mở trình gỡ lỗi trong R. Nó sẽ dừng việc thực thi hàm, cho phép kiểm tra hàm trong môi trường của nó. Ở chế độ gỡ lỗi, có thể sửa đổi các đối tượng, xem các đối tượng trong môi trường hiện tại và cũng có thể tiếp tục thực thi. Lệnh browser[1]> trong bảng điều khiển xác nhận đang ở chế độ gỡ lỗi. Một số lệnh cần tuân thủ:
- ls(): các đối tượng có sẵn trong môi trường hiện tại.
- print(): để đánh giá các đối tượng.
- n: để xem lệnh tiếp theo.
- s: để kiểm tra câu lệnh tiếp theo bằng cách gọi hàm.
- c: thoát khỏi trình gỡ lỗi và tiếp tục thực thi.
- C: để thoát khỏi trình gỡ lỗi và quay lại chương trình.
Hàm recover()
Hàm recover() được sử dụng như một trình xử lý lỗi và không giống như câu lệnh trực tiếp. Hàm recover() hiển thị toàn bộ lỗi đã được sắp xếp và cho phép chọn hàm muốn nhập. Sau đó, phiên gỡ lỗi sẽ có thể bắt đầu tại vị trí đã chọn.
Nhất Luận
----------------------------------------
Tài liệu tham khảo:
[1] R for Data Science. https://r4ds.had.co.nz/
[2] R for Data Science (2e). https://r4ds.hadley.nz/
[3] R for Data Science. https://bookdown.org/swen/R_for_Data_Science/
[4] R Packages (2e). https://r-pkgs.org/
[5] Debugging. https://adv-r.hadley.nz/debugging.html
[6] Advanced R Solutions. https://advanced-r-solutions.rbind.io/