Skip to Content
C++语言导学(原书第2版)
book

C++语言导学(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced
450 pages
5h 35m
Chinese
Pearson
Content preview from C++语言导学(原书第2版)

11.2.2 范围检查

标准库vector并不进行范围检查。例如:

这个初始化操作有可能将某个随机值存入i中,而不是产生一个错误。这并不是我们所需要的,而这种越界错误又是常见的问题。因此,我通常使用vector的一个简单改进版本,它增加了范围检查:

Vec继承了vector除下标运算符之外的所有内容,它重定义了下标运算符来进行范围检查。vector的at()操作也完成下标操作,但它会在参数越界时抛出一个类型为out_of_range的异常(参见3.5.1节)。

对于Vec,越界访问会抛出一个用户可捕获的异常,例如:

这段程序会抛出一个异常,然后将其捕获(参见3.5.1节)。如果用户不捕获异常,程序会以一种明确定义的方式退出,而不是继续执行或是以一种未定义的方式失败。一种尽量减小未捕获异常带来的问题的方法是使用以try块作为main()函数的函数体。例如:

这段代码提供了默认的异常处理程序,这样,当我们未能成功捕获某个异常时,就会在标准错误流cerr上打印一条错误信息(参见10.2节)。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

软件开发实践:项目驱动式的Java开发指南

软件开发实践:项目驱动式的Java开发指南

Raoul-Gabriel Urma, Richard Warburton
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
Python机器学习案例精解

Python机器学习案例精解

Posts & Telecom Press, Yuxi (Hayden) Liu

Publisher Resources

ISBN: 9787111633280