美文网首页码农的世界
C++ 异常及处理详解,都是重点

C++ 异常及处理详解,都是重点

作者: 84e94ada13e1 | 来源:发表于2018-09-11 17:24 被阅读1次

C高级是学习C的进阶阶段,而且对于c高级来说,c++异常也是必须要学习的,而且对于c++异常来说有很多种,是需要自己好好研究的,在这里对c++异常做了详细的了解,希望对你也是有用的。

C++ 异常处理

异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。

异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:try、catch、throw。

throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。

catch: 在您想要处理问题的地方,通过异常处理程序捕获异常。catch 关键字用于捕获异常。

try: try 块中的代码标识将被激活的特定异常。它后面通常跟着一个或多个 catch 块。

如果有一个块抛出一个异常,捕获异常的方法会使

用 try 和 catch 关键字。try 块中放置可能抛出异常的代码,try 块中的代码被称为保护代码。使用 try/catch 语句的语法如下所示:

try

{

/ 保护代码

}catch( ExceptionName e1 )

{

// catch 块

}catch( ExceptionName e2 )

{

// catch 块

}catch( ExceptionName eN )

{

// catch 块

}

如果 try 块在不同的情境下会抛出不同的异常,这个时候可以尝试罗列多个 catch 语句,用于捕获不同类型的异常。

抛出异常

您可以使用 throw 语句在代码块中的任何地方抛出异常。throw 语句的操作数可以是任意的表达式,表达式的结果的类型决定了抛出的异常的类型。

以下是尝试除以零时抛出异常的实例:

double division(int a, int b)

{

if( b == 0 )

{

throw "Division by zero condition!";

}

return (a/b);

}

捕获异常

catch 块跟在 try 块后面,用于捕获异常。您可以指定想要捕捉的异常类型,这是由 catch 关键字后的括号内的异常声明决定的。

try

{

/ 保护代码

}catch( ExceptionName e )

{

// 处理 ExceptionName 异常的代码

}

上面的代码会捕获一个类型为 ExceptionName 的异常。如果您想

让 catch 块能够处理 try 块抛出的任何类型的异常,则必须在异常声明的括号内使用省略号 ...,如下所示:

try

{

/ 保护代码

}catch(...)

{

/ 能处理任何异常的代码

}

C++ 标准的异常

C++ 提供了一系列标准的异常,定义在 中,我们可以在程序中使用这些标准的异常。它们是以父子类层次结构组织起来的,如下所示:

C++ 异常的层次结构

下表是对上面层次结构中出现的每个异常的说明:

定义新的异常

您可以通过继承和重载 exception 类来定义新的异常。下面的实例演示了如何使用 std::exception 类来实现自己的异常:

实例

#include

#include

using namespace std;

struct MyException : public exception

{

const char * what () const throw ()

{

return "C++ Exception";

}

int main()

{

try

{

throw MyException();

}

catch(MyException& e)

{

std::cout << "MyException caught" << std::endl;

std::cout << e.what() << std::endl;

}

catch(std::exception& e)

{

//其他的错误

}

}

相关文章

  • C++ 异常及处理详解,都是重点

    C高级是学习C的进阶阶段,而且对于c高级来说,c++异常也是必须要学习的,而且对于c++异常来说有很多种,是需要自...

  • java exception

    Java异常详解及如何处理https://cloud.tencent.com/developer/article/...

  • (五)C++中的异常处理与模板类

    C++中的异常处理与模板类 一、C++ 中的异常处理 1、异常处理 在C++ 中可以抛出任何类型的异常,根据抛出的...

  • 你的c++团队还在禁用异常处理吗?

    关于c++的异常处理,网上有很多的争议,本文会介绍c++的异常处理的使用,以及我们应该使用异常处理吗,以及使用异常...

  • Android NDK开发之旅23--C++--异常处理

    异常处理 与Java类似,C++也有异常处理。 异常类型 C++中,异常的类型是任意的,如下: throw不同类型...

  • SpringMvc异常

    异常处理类的介绍 类层次结构 异常处理类详解 1.AnnotationMethodHandlerException...

  • 异常( Exceptions)

    异常处理是C++的一项语言机制,用于在程序中处理异常事件。异常事件在C++中表示为异常对象。 优点: 异常允许上层...

  • NDK开发---C++学习(七):异常

    前言 C++的异常处理机制能够将异常检测与异常处理分离开来,当异常发生时,它能自动调用异常处理程序进行错误处理。把...

  • iOS--基础1

    异常处理--Exception Handling Objective-C语言具有类似于Java和c++的异常处理...

  • Android NDK来发之旅24--C++--异常处理

    Android NDK开发之旅 目录 C++ 异常处理 异常是程序在执行期间产生的问题。C++ 异常是指在程序运行...

网友评论

    本文标题:C++ 异常及处理详解,都是重点

    本文链接:https://www.haomeiwen.com/subject/otnugftx.html