iOS – Newbie – Hướng dẫn cách bắt Exception khi ứng dụng bị crash

Là một lập trình viên iOS đang tập toẹ vào nghề có lẽ bạn không khỏi ngỡ ngàng và tốn nhiều thời gian vào việc tìm hiểu tại sao ứng dụng của mình chạy lên bị crash ngay lập tức.

  • Lỗi gặp kiểu như “Thread 1: signal SIGABRT”

Screen Shot 2018-06-21 at 3.14.47 PM

  • Bạn không biết chuyện gì xảy ra, không biết lỗi xảy ra từ đâu và có thể mất nhiều thời gian để chạy đi chạy lại ứng dụng để đoán lỗi và khoanh vùng lỗi.

Đây có lẽ là điều các newbie iOS developer chằng thích chút nào. Làm sao để biết được lỗi exception ở đoạn code nào trong ứng dụng của ta đây.

Các bạn hãy làm theo 3 bước hướng dẫn dưới đây để xác định vùng gây ra lỗi để xử lý nhé!

  • Bước 1: dừng chạy ứng dụng, từ menu Debug xổ ra truy cập vào sub-menu Breakpoint và chọn Create Exception Breakpoint…

Screen Shot 2018-06-21 at 3.39.04 PM

  • Khi đó trong vùng Breakpoint sẽ xuất hiện thêm thông tin All Exceptions với ý nghĩa sẽ dừng tại dòng code mà ném ra ngoại lệ.

Screen Shot 2018-06-21 at 3.39.18 PM.png

  • Bước 2: chạy lại ứng dụng và tái lặp theo tình huống đã gây ra lỗi trước đó, bạn sẽ thấy trên XCode sẽ dừng ở dòng code sẽ gây ra ngoại lệ kèm theo callstack, giá trị các biến tại thời điểm đó.

Screen Shot 2018-06-21 at 3.39.48 PM

  • Bước 3: từ thông tin được cung cấp bạn dễ dàng tìm ra nguyên nhân gây ra lỗi exception. Các lỗi exception có thể: Null Pointer Exception, Index Out Of Bound, File Not Found Exception…

Ngoài ra, trong bài này mình cũng hướng dẫn bạn thực hiện Debug trên XCode trong tình huống chủ động đặt Breakpoint

  • Bạn có thể đặt Breakpoint tại dòng code bất kỳ trong project của mình bằng cách click chuột vào vùng hiển thị dòng code, ví dụ hình ảnh dưới của mình là dòng 29.

Screen Shot 2018-06-21 at 3.50.27 PM.png

  • Chạy ứng dụng theo kịch bản đợi khi nó dừng ở điểm Breakpoint bạn vừa đặt

Screen Shot 2018-06-21 at 3.53.32 PM

  • Tại điểm Breakpoint đang dừng, để chuyển qua lần lượt các dòng code tiếp theo bạn sử dụng phím tắt F6 (Step Over) hoặc biểu tượng ở phía dưới thanh Debug

Screen Shot 2018-06-21 at 3.55.45 PM

  • Để nhảy vào trong một hàm nào đó bạn dùng phím tắt F7 (Step Into) hoặc biểu tượng ở thanh Debug.

Screen Shot 2018-06-21 at 3.56.19 PM

  • Để thoát khỏi hàm vừa nhảy vào ra dòng lệnh tiếp theo ở bên ngoài, bạn sử dụng phím tắt F8 (Step Out)

Screen Shot 2018-06-21 at 3.56.44 PM.png

  • Và tiếp tục chạy chương trình bằng cách nhấn vào biểu tượng như nút Play trên thanh Debug (sau biểu tượng Breakpoint màu xanh)

Screen Shot 2018-06-21 at 3.55.45 PM

Chúc các bạn thành công nhé!

——————— END ——————–

 

 

Advertisements