Làm thế nào để thực hiện xử lý ngoại lệ trong C ++?



Bài viết này sẽ giúp bạn hiểu xử lý ngoại lệ là gì và cách thực hiện xử lý ngoại lệ trong C ++ với phần trình diễn thực tế.

Ngoại lệ là các điều kiện bất thường trong thời gian chạy hoặc thời gian biên dịch. là một khái niệm rất cần thiết trong c ++. Bài viết này sẽ giới thiệu cho bạn cách xử lý ngoại lệ trong C ++ cùng với các kiểu khác nhau của nó.

Các gợi ý sau sẽ được đề cập trong bài viết này,





Vì vậy, chúng ta hãy bắt đầu,

Xử lý ngoại lệ trong C ++

Các loại ngoại lệ

Có hai loại ngoại lệ,



Thời gian chạy Ngoại lệ

Nó là một Ngoại lệ bị bắt trong thời gian chạy.

Ngoại lệ thời gian biên dịch



Nó là một Ngoại lệ bị bắt trong thời gian biên dịch.

Tiếp tục với bài viết Xử lý ngoại lệ này trong C ++,

có thể thay đổi và bất biến trong java

Xử lý ngoại lệ là gì?

Lỗi làm gián đoạn quá trình thực thi bình thường của một chương trình. Xử lý ngoại lệ là rất cần thiết, và nó là quá trình xử lý lỗi hoặc ngoại lệ. Nó đảm bảo rằng việc thực thi chương trình không bị ảnh hưởng bởi các ngoại lệ và từ từ xử lý chúng mà không gây ra bất kỳ vấn đề nào cho việc thực thi chương trình.

Khi bạn xem xét việc xử lý ngoại lệ, có ba thuật ngữ liên quan đến nó,

Thử

Mã bên trong khối này giống như mã dùng thử, có thể đưa ra một ngoại lệ. Ngoại lệ này được bắt bên trong khối catch.

Nắm lấy

Mã trong khối này được thực thi khi mã trong khối thử ném một ngoại lệ.

Phi

Từ khóa này được sử dụng để ném một ngoại lệ khi nó gặp phải. Ngoại lệ được gửi đến trình xử lý ngoại lệ.

Cú pháp:

Mã bên trong khối thử được thực thi. Nếu có lỗi được tạo ra, thì từ khóa throw sẽ ném ngoại lệ cho trình xử lý ngoại lệ, tức là khối catch. Sau đó, khối catch đã thực thi mã nằm bên trong khối của nó, do đó xử lý ngoại lệ.

Hãy cùng chúng tôi xem mã mẫu để xử lý ngoại lệ trong c ++

Mã mẫu

#include using namespace std try {// code for try throw & ldquoexception & rdquo} catch (exception) {// code for catch} int main () {int x = 1 try {cout<< 'Try Block: '<

Đầu ra:

Đầu ra - Xử lý ngoại lệ trong C ++ - Edureka

Giải trình

Chương trình này trình bày xử lý ngoại lệ. Chúng ta có một biến x, được gán giá trị là 1. Sau đó, chúng ta có phần bắt đầu của khối try. Trong khối này, chúng ta có một câu lệnh if với điều kiện x<10.

Trong trường hợp của chúng ta, điều kiện đúng khi x là một. Chương trình sau đó ném một ngoại lệ và điều khiển chuyển sang bắt khối. Chúng tôi thực hiện điều kiện trong phần bắt và thoát khỏi khối.

bắt (...) {chi phí<< 'Default Exceptionn'<

Cuối cùng, chúng tôi thực hiện các câu lệnh còn lại sau khối catch và thoát khỏi chương trình.

Có thể có nhiều câu lệnh bắt, tùy thuộc vào số lượng trường hợp ngoại lệ có thể.

Tiếp tục với bài viết Xử lý ngoại lệ này trong C ++,

Bắt khối thất bại

Hãy xem xét chương trình trước, nếu thay vì x từ khóa ném ném “ABC” thì hàm catch sẽ không thể xử lý nó. Nó sẽ hiển thị một lỗi,

sự khác biệt giữa ghi đè và ghi đè trong java

Chúng tôi có thể có thông báo lỗi đã thắng của chúng tôi được hiển thị trong trường hợp như vậy.

Để giải quyết vấn đề này, chúng ta cần thêm một hàm bắt mặc định vào mã để xử lý các vấn đề như vậy.

#include using namespace std int main () {int x = 1 try {cout<< 'Try Block: '<

Đầu ra:

Giải trình:

Mã này tương tự như trước đó. Thay đổi duy nhất là ngoại lệ được ném là kiểu char. Điều này dẫn đến chức năng bắt của chúng tôi trở nên vô dụng. Vì vậy, chúng tôi đã bao gồm một hàm bắt mặc định.

Nếu không có câu lệnh catch nào khớp, thì lệnh catch mặc định sẽ được thực thi.

cách thiết lập nguyên tử cho python

Nhiều khối bắt

Có thể có nhiều khối bắt của một khối thử duy nhất.

Đây là một ví dụ,

#include using namespace std int test (int a) {try {if (a<0) throw a else throw 'a' }catch(int a){ cout<<'Caught an integer: ' << a<

Đầu ra:

Giải trình:

Trong đoạn mã trên, chúng tôi sử dụng nhiều câu lệnh bắt. Chúng tôi có một bài kiểm tra chức năng tạo ra một ngoại lệ. Trong trường hợp thử nghiệm đầu tiên, giá trị là 10. Vì 10 lớn hơn 0, ký tự ‘a’ được ném ra và nó bị bắt bởi hàm bắt thứ hai.

Trong trường hợp thứ hai, giá trị nhỏ hơn 0 nên giá trị -1 được ném ra và nó bị bắt bởi ngoại lệ số nguyên

Xử lý ngoại lệ trong lớp cơ sở và lớp dẫn xuất:

Nếu các ngoại lệ của lớp cơ sở và lớp dẫn xuất bị bắt thì việc bắt của lớp dẫn xuất phải được thực thi trước lớp cơ sở.

Dưới đây là một số ngoại lệ:

  • std :: ngoại lệ

  • logic_error

  • lỗi runtime

  • bad_alloc

  • bad_cast

  • bad_exception

Với điều này, chúng ta đến phần cuối của blog này về ‘Xử lý ngoại lệ trong C ++’. Tôi hy vọng bạn thấy thông tin này bổ ích và hữu ích, hãy theo dõi để biết thêm các hướng dẫn về các chủ đề tương tự. Bạn cũng có thể xem chương trình đào tạo của chúng tôi to có được kiến ​​thức chuyên sâu về jQuery cùng với các ứng dụng khác nhau của nó, bạn có thể để được đào tạo trực tuyến trực tiếp với hỗ trợ 24/7 và quyền truy cập trọn đời.

Có một câu hỏi cho chúng tôi? Đề cập đến họ trong phần bình luận của blog này và chúng tôi sẽ liên hệ lại với bạn.