Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Ruby

Xử lý lỗi API thường gặp: Hướng dẫn thực chiến

Tài liệu API sẽ nói cho bạn cách dùng API. Nhưng khi chuyện gì đó sai, bạn có thể bị bỏ rơi. Thông báo lỗi thường không đầy đủ, gây hiểu lầm, hoặc không giúp ích. Và bạn làm sao với NoMethodError: undefined method '[]' for nil:NilClass?

Khi bạn học một API, framework, hoặc thư viện, bạn không thể chỉ học cách dùng nó khi mọi thứ suôn sẻ. Bạn cũng cần tìm ra làm sao khi nó ném lỗi về cho bạn.

Làm sao để làm hỏng code?

Có cách dễ dàng để học làm gì khi API bạn dùng bị hỏng. Hãy tự làm hỏng nó!

Ví dụ, tôi sẽ:

  • Truyền data sai kiểu. Bạn có thể truyền symbol thay vì String, String thay vì Array, Hash thay vì Array, các kiểu như vậy.

  • Truyền data không đầy đủ. Bạn có thể truyền nil, hash thiếu field, và object vừa được khởi tạo.

  • Nếu API yêu cầu truy cập mạng, ngắt WiFi hoặc rút cáp mạng. Nó chỉ timeout, hay nó báo service nào không đạt được?

  • Nếu API cho phép truyền block, ném exception bên trong block, hoặc trả về data sai kiểu.

Một API tốt sẽ nói bạn làm sai gì. API tuyệt vời sẽ nói cách sửa. Nhưng thường xuyên, bạn sẽ gặp Ruby NoMethodError, nil bất ngờ, hoặc tệ hơn, nhận lại giá trị trả về hoàn toàn lạ.

Tại sao làm hỏng code?

Điều này không hoàn toàn xấu. Nếu bạn đang chơi với gem open-source, bạn có thể花时间 hiểu ở đâu hành vi bất ngờ đó đến từ và tại sao nó xảy ra. Bạn có thể debug và đọc chút code để học nhiều về cách thư viện hoặc API hoạt động.

Khi bạn khám phá ra NoMethodError đến từ đâu, bạn có thể tiến xa hơn. Bạn có thể sửa thông báo lỗi cho người tiếp theo gặp vấn đề này thật sự! Những sửa lỗi thông báo nhỏ là đóng góp open-source tuyệt vời và pull request dễ dàng. Và chúng làm cả hệ sinh thái Ruby tốt hơn cho mọi người.

Đến khi API là REST API closed-source, bạn vẫn có thểได้ giá trị từ bài tập này. Sau khi thấy các lỗi khác nhau từ API, bạn sẽ dễ dàng hơn sửa vấn đề khi gặp lỗi thật.

Khi bạn trở nên thoải mái hơn nhìn và sửa lỗi trong code xung quanh, bạn sẽ thấy code hỏng như một câu đố cần giải quyết. Bạn sẽ không tự động co rúm khi thấy exception và backtrace đổ ra màn hình. Thay vào đó, bạn sẽ thấy chúng như cơ hội để học thêm về hệ thống bạn đang làm việc.

Cuối cùng, bạn sẽ biết khi code hỏng, bạn có thể gom nó lại. Bạn sẽ cải thiện tự tin khi thử thư viện và API mới. Và sự táo bạo đó sẽ tăng tốc độ học điều mới của bạn.