Chào mừng bạn đến với Selfomy Hỏi Đáp, hãy Hỏi bài tập hoặc Tham gia ngay
0 phiếu
109 lượt xem
Khang1000 trong Tin học lớp 10 bởi Phó giáo sư (31.4k điểm)
Trình bày cách xử lý ngoại lệ (exception handling) trong C++. Viết chương trình thực hiện chia hai số và xử lý lỗi chia cho 0.

1 Câu trả lời

0 phiếu
monmon70023220 bởi Cử nhân (3.0k điểm)

### Cách xử lý ngoại lệ (Exception Handling) trong C++

 

Trong C++, xử lý ngoại lệ được thực hiện thông qua ba từ khóa chính: `try`, `catch`, và `throw`.

 

- **`try`**: Khối mã mà bạn muốn kiểm tra để phát hiện ngoại lệ.

- **`throw`**: Được sử dụng để ném ra một ngoại lệ khi phát hiện lỗi.

- **`catch`**: Khối mã để xử lý ngoại lệ khi nó xảy ra.

 

### Quy trình xử lý ngoại lệ

 

1. **Đặt mã có khả năng gây lỗi trong khối `try`.**

2. **Ném ngoại lệ bằng từ khóa `throw` khi phát hiện lỗi.**

3. **Sử dụng khối `catch` để bắt và xử lý ngoại lệ.**

 

### Ví dụ chương trình chia hai số và xử lý lỗi chia cho 0

 

```cpp

#include

using namespace std;

 

double divide(int a, int b) {

    if (b == 0) {

        throw runtime_error("Lỗi: Không thể chia cho 0!"); // Ném ngoại lệ

    }

    return static_cast(a) / b; // Trả về kết quả chia

}

 

int main() {

    int num1, num2;

    

    cout << "Nhập số thứ nhất: ";</p>

    cin >> num1;

    

    cout << "Nhập số thứ hai: ";</p>

    cin >> num2;

 

    try {

        double result = divide(num1, num2); // Gọi hàm chia trong khối try

        cout << "Kết quả: " << result << endl;</p>

    } catch (const runtime_error& e) { // Bắt ngoại lệ

        cout << e.what() << endl; // In thông báo lỗi</p>

    }

 

    return 0;

}

```

 

### Giải thích chương trình:

 

1. **Hàm `divide(int a, int b)`**:

   - Kiểm tra nếu `b` bằng 0, ném một ngoại lệ với thông báo lỗi sử dụng `throw`.

   - Nếu không có lỗi, trả về kết quả của phép chia.

 

2. **Trong hàm `main()`**:

   - Nhập hai số từ người dùng.

   - Gọi hàm `divide()` trong khối `try`.

   - Nếu có ngoại lệ xảy ra, nó sẽ được bắt bởi khối `catch`, và thông báo lỗi sẽ được in ra cho người dùng.

 

### Cách hoạt động của chương trình:

 

- Khi người dùng nhập số thứ nhất và số thứ hai, chương trình sẽ cố gắng thực hiện phép chia.

- Nếu người dùng nhập số 0 cho số thứ hai, hàm `divide()` sẽ ném ra một ngoại lệ `runtime_error`.

- Khối `catch` sẽ bắt ngoại lệ đó và in thông báo lỗi "Lỗi: Không thể chia cho 0!" ra màn hình.

 

 

Các câu hỏi liên quan

0 phiếu
1 trả lời 155 lượt xem
0 phiếu
1 trả lời 130 lượt xem
0 phiếu
1 trả lời 130 lượt xem
0 phiếu
1 trả lời 270 lượt xem
0 phiếu
1 trả lời 119 lượt xem
0 phiếu
1 trả lời 182 lượt xem
0 phiếu
1 trả lời 113 lượt xem
0 phiếu
1 trả lời 150 lượt xem
0 phiếu
1 trả lời 140 lượt xem
0 phiếu
1 trả lời 201 lượt xem

HOT 1 giờ qua

  1. trannhat900trannhat900

    52948 Điểm

  2. phamngoctienpy1987844phamngoctienpy1987844

    50728 Điểm

  3. vxh2k9850vxh2k9850

    35980 Điểm

  4. Nqoc_bakaNqoc_baka

    34614 Điểm

Phần thưởng hằng tháng
Hạng 1: 200.000 đồng
Hạng 2: 100.000 đồng
Hạng 3: 50.000 đồng
Hạng 4: 20.000 đồng
Phần thưởng bao gồm: mã giảm giá Shopee, Nhà Sách Phương Nam, thẻ cào cùng nhiều phần quà hấp dẫn khác sẽ dành cho những bạn tích cực nhất của tháng. Xem tại đây
Bảng xếp hạng cập nhật 30 phút một lần
...