Cách xử lý ngoại lệ dễ dàng trong C++

Cach Xu Ly Ngoai Le De Dang Trong C



Các sự kiện không mong muốn xảy ra trong khi chương trình đang chạy được gọi là ngoại lệ hoặc lỗi. Các ngoại lệ xảy ra trong thời gian chạy và không thể bị phát hiện trong quá trình biên dịch, vì vậy chúng có thể gây ra sự cố nghiêm trọng trong chương trình. Xử lý tốt các ngoại lệ trong chương trình C++ là mục tiêu hàng đầu để lập trình viên đạt được kết quả mong muốn.

Cách xử lý ngoại lệ dễ dàng trong C++

Xử lý ngoại lệ trong C++ đề cập đến cơ chế phát hiện lỗi trong thời gian chạy và xử lý chúng một cách hiệu quả, chẳng hạn như xử lý các đầu vào không hợp lệ, chia một số cho 0 trong các phép chia, v.v.

Xử lý ngoại lệ trong C++ bao gồm ba từ khóa: thử, ném và bắt. Câu lệnh try cho phép người dùng xác định khối mã có thể tạo ra ngoại lệ trong mã. Từ khóa ném ném ra một ngoại lệ nếu được phát hiện sau khi kiểm tra khối theo từ khóa thử. Từ khóa Catch chứa khối mã có thể xử lý ngoại lệ được quan sát thấy trong khối thử.







Ví dụ 1: Xử lý ngoại lệ trong quá trình chia

Mã được viết để kiểm tra các ngoại lệ trong quá trình chia.



#include
sử dụng không gian tên tiêu chuẩn ;

int chủ yếu ( ) {

gấp đôi tử số, mẫu số, phép chia ;

cout << 'Nhập giá trị tử số:' ;
Ăn >> tử số ;

cout <> mẫu số ;

thử {


nếu như ( mẫu số == 0 )
ném 0 ;


phân công = tử số / mẫu số ;
cout << tử số << '/' << mẫu số << ' = ' << phân công << kết thúc ;
}

nắm lấy ( int num_ngoại lệ ) {
cout << 'Lỗi! Số chia không thể là  ' << num_ngoại lệ << kết thúc ;
}

trở lại 0 ;
}

Trong chương trình này, người dùng nhập giá trị của tử số và mẫu số được khai báo trong phần main(). Trong khối try, câu lệnh if được sử dụng để kiểm tra ngoại lệ xem mẫu số có bằng 0 hay không. Vì phép chia không thể được thực hiện với ước số 0 nếu mẫu số được tìm thấy bằng 0, nó sẽ đưa ra một ngoại lệ và khối bắt sẽ trả về một đối số lỗi nếu không phép chia đơn giản sẽ được thực hiện.







Người dùng nhập tử số 42 và số 0 vào mẫu số, điều này sẽ đưa ra một ngoại lệ, do đó chương trình trả về đối số lỗi.



Người dùng nhập tử số 42 và 2 làm mẫu số, vì không tìm thấy ngoại lệ nào nên kết quả sau khi chia sẽ trả về.

Ví dụ 2 Xử lý ngoại lệ để kiểm tra tuổi

Chương trình này kiểm tra các trường hợp ngoại lệ trong độ tuổi của người dùng.

#include
sử dụng không gian tên tiêu chuẩn ;

/*
Ở đây, chúng tôi muốn ném ngoại lệ (tuổi là ngoại lệ) nếu tuổi của người đó nhỏ hơn 18.
*/

int chủ yếu ( )
{
// kiểm tra xem tuổi có lớn hơn 18 trong khối try hay không.
thử
{
int tuổi ;
cout << 'Nhập tuổi của bạn để truy cập: ' ;
Ăn >> tuổi ;

nếu như ( tuổi >= 18 )
{
cout << 'Chấp thuận quyền truy cập.' ;
}
// ngoại lệ tùy chỉnh được ném ra nếu độ tuổi dưới 18.
khác
{
ném ( tuổi ) ;
}
}
// bắt ngoại lệ được ném ra và hiển thị kết quả mong muốn (truy cập bị từ chối!)
nắm lấy ( int x )
{
cout << 'Truy cập bị từ chối! Bạn chưa đủ tuổi.' << kết thúc ;
}
trở lại 0 ;
}

Trong chương trình này, một biến có giá trị nguyên được xác định. Người dùng được yêu cầu nhập tuổi và thử kiểm tra khối xem tuổi của người dùng có lớn hơn hoặc bằng 18 hay không. Nếu không đúng thì nó sẽ đưa ra một ngoại lệ và khối ngoại lệ sẽ trả về Quyền truy cập bị từ chối! Lý lẽ. Nếu không, quyền truy cập sẽ được cấp.

Người dùng nhập độ tuổi là 12 để kiểm tra quyền truy cập, vì độ tuổi này dưới 18, do đó, đối số Truy cập bị từ chối sẽ được trả về.

Người dùng nhập độ tuổi 20, vì độ tuổi này trên 18 nên quyền truy cập được cấp cho người dùng.

Ghi chú : Nếu không có khối bắt trong chương trình thì chương trình sẽ hoạt động bất thường và kết thúc bất ngờ trong trường hợp có ngoại lệ.

Phần kết luận

Xử lý ngoại lệ trong C++ đề cập đến cơ chế phát hiện lỗi thời gian chạy và xử lý chúng một cách hiệu quả. Nó bao gồm ba từ khóa thử, ném và bắt. Ngoại lệ được kiểm tra mã trong khối thử, từ khóa ném sẽ ném ngoại lệ nếu tìm thấy và khối bắt xử lý ngoại lệ được ném cho khối thử. Việc xử lý các ngoại lệ giúp trải nghiệm người dùng mượt mà và tuyệt vời bằng cách tránh các lỗi trong thời gian chạy.