Skip to Content
プログラミングRust 第2版
book

プログラミングRust 第2版

by Jim Blandy, Jason Orendorff, Leonora F. S. Tindall, 中田 秀基
January 2022
Intermediate to advanced
680 pages
11h 35m
Japanese
O'Reilly Japan, Inc.
Content preview from プログラミングRust 第2版

7章エラー処理

もたもたしてたら、こうなることはわかっていた。

−George Bernard Shaw†1、死に際して

[†1] 訳注:19世紀から20世紀にかけて多彩な分野で活躍した、アイルランドの文学者、教育者、政治家。

Rustのエラー処理手法は、1章を割くに値するほど他の言語と異なる。難しいわけではないが、多くの読者にとってなじみのないものだ。本章は2つの異なる種類のエラー処理、パニックとResultについて説明する。

通常のエラー処理にはResult型を用いる。Result型は、典型的にはプログラム外部の要因、すなわち間違った入力、ネットワーク切断、権限の問題、などによって生じた問題を表現するために用いられる。これらの事態が起こるのはわれわれのせいではない。プログラムにバグがなかったとしても、このようなことは時々起こるものだ。本章のほとんどはこの種のエラーの説明に費やすが、その前に、より簡単なパニックの方を説明しよう。

パニックは通常ではない種類のエラー、すなわち起こってはいけない種類のエラーの処理に用いる。

7.1 パニック

プログラム中でパニックが起こるのは、何かプログラム自身のバグに起因すると思われる問題が発生したときだ。例えば以下の状況が考えられる。

  • 配列の範囲外へのアクセス
  • 整数のゼロによる除算
  • ErrであるResultに対する.expect()の呼び出し
  • アサートの失敗

(プログラマ自身がコード中で何かおかしいことを発見した際には、panic!()マクロでパニックを直接起こすこともできる。panic!()マクロでは、println!()スタイルの引数でエラーメッセージを生成する。)

上に列挙した状況すべてに共通するのは、はっきり言って、プログラマの過ちだということだ。こういうときに大事なことは、まず「落ち着け(Don’t ...

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

プログラミングRust

プログラミングRust

Jim Blandy, Jason Orendorff, 中田 秀基
詳解 システム・パフォーマンス 第2版

詳解 システム・パフォーマンス 第2版

Brendan Gregg, 西脇 靖紘, 長尾 高弘
レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス

レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス

David Scott Bernstein, 吉羽 龍太郎, 永瀬 美穂, 原田 騎郎, 有野 雅士

Publisher Resources

ISBN: 9784873119786Other