Bài tập C++ có giải: Bài tập xử lý ngoại lệ



Bài tập Xử lý ngoại lệ cho trường hợp chia cho số 0

Viết chương trình C++ nhập ba số a, b, c và thực hiện phép chia c/(a-b). Trong đó, viết code để xử lý trường hợp a-b=0.

Dưới đây là chương trình C++ để giải bài tập trên. Chúng ta sử dụng khối try-catch để xử lý ngoại lệ khi xảy ra tình huống chia cho số 0.

Quảng cáo
#include<iostream>
#include<conio.h>
using namespace std;

int main()
{
   int a,b,c;
   float  d;
   
   cout<<"Nhap gia tri cua a: ";
   cin>>a;
   cout<<"Nhap gia tri cua b: ";
   cin>>b;
   cout<<"Nhap gia tri cua c: ";
   cin>>c;
   
   try
   {
              if((a-b)!=0)
              {
                 d=c/(a-b);
                 cout<<"Ket qua la: "<<d;
              }
              else
              {
                 throw(a-b);
              }
   }
 
   catch(int i)
   {
              cout<<"Ket qua la duong vo cung vi (a-b) bang: "<<i;
   }
  
  return 0;
}

Chạy chương trình C++ trên sẽ cho kết quả như hình sau:

1. Với trường hợp a-b là khác không, ta có kết quả tính toán bình thường:

Bài tập về xử lý ngoại lệ trong C++

2. Với trường hợp a-b là bằng không, ta có kết quả giống như:

Bài tập về xử lý ngoại lệ trong C++

Bài tập Xử lý ngoại lệ với nhiều khối catch

Dưới đây là chương trình C++ ví dụ cho trường hợp sử dụng nhiều khối catch. Chúng ta định nghĩa một hàm test chẳng hạn và sử dụng khối try với nhiều khối catch theo sau (với tình huống này là 2 khối catch) như sau:

Quảng cáo
  • Bên trong khối try, đầu tiên kiểm tra xem giá trị đó có lớn hơn 0 hay không.

  • Nếu giá trị đó lớn hơn 0, thì ném giá trị và bắt exception tương ứng.

  • Nếu không, ném ký tự và bắt exception tương ứng.

#include<iostream>
#include<conio.h>
using namespace std;

void test(int x)
{
   try
   {
              if(x>0)
                 throw x;
        else
                 throw 'x';
   }
 
   catch(int x)
   {
              cout<<"\nBat mot so nguyen va so nguyen do la: "<<x;
   }
 
   catch(char x)
   {
              cout<<"\nBat mot ky tu va ky tu do la: "<<x;
   }
}
 
int main()
{
   
   cout<<"\nVi du nhieu khoi catch:";
   test(10);
   test(0);
   return 0;
} 
    

Chạy chương trình C++ trên sẽ cho kết quả như hình sau:

Bài tập về xử lý ngoại lệ trong C++

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.




Tài liệu giáo viên