Khác nhau giữa try/catch và try/except
Hi các bạn. Mình thấy một số điều khá hay về try catch và try except, hôm nay mình muốn chia sẻ với các bạn!
Try/cacth là của chuẩn của C++, để bắt các exception của C++. Try/except được thiết kế để bắt các exception của windows.
Vậy khi nào sử dụng, và nên sử dụng cái nào?
Khi bạn lập trình thuần C++, không có tý dính dáng gì đến code WinAPI của windows (lập trình trên linux chẳng hạn) hoặc bạn biết trước được các loại exception C++ cần bắt thì bạn nên sử dụng chuẩn try/catch.
Khi bạn lập trình C/C++ trên hệ điều hành windows mà bạn không thể lường trước được hết các loại exception. Bạn nên sử dụng try/except
Mình có một ví dụ nho nhỏ để giúp các bạn nắm được mụch đích muốn nói của mình
Như các bạn thấy ở hình bên dưới. Exception của mình tạo ra là: Gán giá trị cho một con trỏ trỏ tới vùng memory null. Và mình tạo ra 2 khối bắt exception, một của windows, một của chuẩn C++. Kết quả là chỉ có khối try/except của windows bắt được exception loại này. Các bạn có thể debug đoạn code dưới để chứng mình điều này .
Theo quan điểm cá nhân của mình: Chúng ra nên bắt try/except khi lập trình C/C++ trên môi trường windows, sẽ giúp chúng ta kiểm soát được lỗi rộng hơn try/cacth. Nhất là các project lớn, chúng ta không thể lường trước được hết các lỗi, việc bắt ngoại lệ rộng là rất hữu ích
Các bạn có góp ý hoặc quan điểm khác xin được chỉ giáo ạ! Đây chỉ là quan điểm chủ quan của mình Xin nhận mọi gạch đá ạ!
Try/cacth là của chuẩn của C++, để bắt các exception của C++. Try/except được thiết kế để bắt các exception của windows.
Vậy khi nào sử dụng, và nên sử dụng cái nào?
Khi bạn lập trình thuần C++, không có tý dính dáng gì đến code WinAPI của windows (lập trình trên linux chẳng hạn) hoặc bạn biết trước được các loại exception C++ cần bắt thì bạn nên sử dụng chuẩn try/catch.
Khi bạn lập trình C/C++ trên hệ điều hành windows mà bạn không thể lường trước được hết các loại exception. Bạn nên sử dụng try/except
Mình có một ví dụ nho nhỏ để giúp các bạn nắm được mụch đích muốn nói của mình
Như các bạn thấy ở hình bên dưới. Exception của mình tạo ra là: Gán giá trị cho một con trỏ trỏ tới vùng memory null. Và mình tạo ra 2 khối bắt exception, một của windows, một của chuẩn C++. Kết quả là chỉ có khối try/except của windows bắt được exception loại này. Các bạn có thể debug đoạn code dưới để chứng mình điều này .
Theo quan điểm cá nhân của mình: Chúng ra nên bắt try/except khi lập trình C/C++ trên môi trường windows, sẽ giúp chúng ta kiểm soát được lỗi rộng hơn try/cacth. Nhất là các project lớn, chúng ta không thể lường trước được hết các lỗi, việc bắt ngoại lệ rộng là rất hữu ích
Các bạn có góp ý hoặc quan điểm khác xin được chỉ giáo ạ! Đây chỉ là quan điểm chủ quan của mình Xin nhận mọi gạch đá ạ!
Chỉnh sửa lần cuối bởi người điều hành: