Bạn đang xem: Try catch trong c++ code example

Bởi vì bọn họ đang tạo một exception có kiểu const char*, vì thế trong khi bắt exception này, họ phải thực hiện const char* trong khối catch.

Biên dịch với chạy công tác C++ trên đang cho hiệu quả sau:

*

Standard Exception vào C++

C++ cung cấp một danh sách các Standard Exception được quan niệm trong mà bạn cũng có thể sử dụng trong số chương trình. Phần đa exception này được sắp xếp theo cấu trúc thứ tự cha-con như sau:

*

Bảng bên dưới là biểu đạt ngắn gọn gàng về từng exception được nói trong sơ trang bị trên:

ExceptionMô tả
std::exceptionMột exception với lớp phụ vương của tất cả Standard Exception trong C++
std::bad_allocCó thể được ném vày new
std::bad_castCó thể được ném vị dynamic_cast
std::bad_exceptionĐây là thiết bị bổ ích để giải pháp xử lý Unexpected Exception vào một chương trình C++
std::bad_typeidCó thể được ném vày typeid
std::logic_errorMột exception nhưng mà theo lý thuyết có thể được phát hiện bởi việc đọc code
std::domain_errorĐây là 1 trong exception được ném khi một miền toán học chưa hợp lệ được sử dụng
std::invalid_argumentĐược ném do những tham số không hợp lệ
std::length_errorĐược ném lúc 1 std::string quá rộng được sản xuất ra
std::out_of_rangeCó thể được ném vị một phương thức, lấy ví dụ như std::vector cùng std::bitset::operator<>().
std::runtime_errorMột exception cơ mà theo định hướng không thể được phát hiện tại bởi vấn đề đọc code
std::overflow_errorĐược ném ví như một sự tràn luồng toán học (mathematical overflow) xuất hiện
std::range_errorXuất hiện khi bạn nỗ lực lưu giữ lại một giá bán trị bên phía ngoài dãy giá trị
std::underflow_errorĐược ném giả dụ một mathematical underflow (sự tràn dưới) xuất hiện

Định nghĩa Exception new trong C++

Bạn rất có thể định nghĩa những exception đến riêng các bạn bằng việc thừa kế và ghi đè chức năng lớp exception trong C++.

Xem thêm: Letter Of Authorization Letter Là Gì ? Định Nghĩa, Ví Dụ, Giải Thích

Lấy ví dụ như sau minh họa cách bạn cũng có thể sử dụng lớp std::exception để triển khai exception của riêng chúng ta theo một cách chuẩn chỉnh trong C++:


Biên dịch với chạy lịch trình C++ trên sẽ cho kết quả sau:

*

Ở đây, what() là một trong phương thức public được hỗ trợ bởi lớp exception trong C++ và nó đã có ghi đè bởi tất cả các lớp exception con. Lấy một ví dụ này trả về vì sao của một exception trong C++.