《C++ Primer Plus》:异常和其它

2020-07-31  本文已影响0人  Dragon_boy

异常

abort()

abort()位于cstdlib头文件里,它向标准错误流发送消息(程序异常终止),然后终止程序,这样,可以在条件检查后,发生异常的话就终止程序。

异常机制

使用try代码块,用catch捕获异常,try代码块发生异常后,就会跳转到catch块,如:

try
{
  ...
}
catch (const char* s)
{
  ...
}

还可以使用throw关键字,它可以抛出一个自定义的异常字符串,也可以跟一个对象:

throw "some exception";
throw object();

exception类

位于exception头文件中,可以将其作为异常类的基类。其中有一个成员方法what()虚方法,返回一个代表异常的字符串。

class bad_heam : public std::exception
{
public:
  const char* what(){return "...";}
};

RTTI

即运行阶段类型识别。C++支持3个RTTI元素:

类型转化运算符:

有4个类型转化运算符:

const_cast将值转换为const或volatile。static_cast:

static_cast<type-name>(expression)

只有当type-name可被隐式转换为expression类型时,或expression可被隐式转换为type-name所属类型时,static_cast才合法。

reinterpret_cast不允许删除const,用于天生危险的类型转换。

上一篇 下一篇

猜你喜欢

热点阅读