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
Chỉnh sửa lần cuối bởi người điều hành: