C++程序创建自定义异常

c++程序创建自定义异常

异常是C++的一个非常核心的概念。在执行过程中发生不希望或不可能的操作时会发生异常。在C++中处理这些不希望或不可能的操作被称为异常处理。异常处理主要使用三个特定的关键字,它们是‘try’、‘catch’和‘throw’。‘try’关键字用于执行可能遇到异常的代码,‘catch’关键字用于处理这些异常,‘throws’关键字用于创建异常。C++中的异常可以分为两种类型,即STL异常和用户定义的异常。在本文中,我们重点介绍如何创建这些自定义的异常。有关异常处理的更多详细信息可以在此处找到。

使用单个类创建自定义异常

首先,我们看到如何使用一个单一的类来创建自定义异常。为此,我们必须定义一个类并抛出该类的异常。

语法

//user-defined classclass Test{};try{   //throw object of that class   throw Test();}catch(Test t) {   ....}

登录后复制

Example

的翻译为:

示例

#include using namespace std;//define a classclass Test{};int main() {   try{      //throw object of that class      throw Test();   }   catch(Test t) {      cout 

输出

Caught exception 'Test'!

登录后复制

‘try’块会抛出该类的异常,而‘catch’块只会捕获该特定类的异常。如果有两个用户定义的异常类,那么必须分别处理它们。

使用多个类创建自定义异常

这个过程很简单,如预期的那样,如果有多个异常情况,每个都必须单独处理。

立即学习“C++免费学习笔记(深入)”;

语法

//user-defined classclass Test1{};class Test2{};try{   //throw object of the first class   throw Test1();}catch(Test1 t){   ....}try{   //throw object of the second class   throw Test2();}catch(Test2 t){   ....}

登录后复制

Example

的翻译为:

示例

#include using namespace std;//define multiple classesclass Test1{};class Test2{};int main() {   try{      //throw objects of multiple classes      throw Test1();   }   catch(Test1 t) {      cout 

输出

Caught exception 'Test1'!Caught exception 'Test2'!

登录后复制

我们不得不使用两个不同的try-catch块来处理两种不同类别的异常。现在我们看看是否可以使用构造函数创建和处理异常。

使用构造函数创建自定义异常

我们可以使用类构造函数来创建自定义异常。在下面的示例中,我们可以看到异常的抛出和处理都在类构造函数内部进行管理。

Example

的翻译为:

示例

#include using namespace std;//define a classclass Test1{   string str;   public:      //try-catch in the constructor      Test1(string str){         try{            if (str == "Hello"){               throw "Exception! String cannot be 'Hello'!";            }            this->str = str;            }         catch(const char* s) {            cout 

输出

Exception! String cannot be 'Hello'!

登录后复制

异常处理是C++提供的最重要的功能之一。我们可以继承C++异常类并使用它来实现异常处理,但这只是良好的实践,不是创建自定义异常所必需的。继承C++异常类的好处是,如果有一个普通的catch语句捕获std::exception,它可以处理任何用户定义的异常而不需要知道具体细节。需要注意的是,'throws'语句只在'try'块内起作用,否则不起作用。'catch'语句只能处理由用户定义的类或某些STL类抛出的异常。

以上就是C++程序创建自定义异常的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2586772.html

(0)
上一篇 2025年3月6日 15:23:50
下一篇 2025年3月2日 20:35:32

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论