Book Image

D Cookbook

By : Adam Ruppe
Book Image

D Cookbook

By: Adam Ruppe

Overview of this book

Table of Contents (21 chapters)
D Cookbook
Credits
Foreword
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Using assertions and exceptions


D has two features dedicated to error handling: exceptions and assertions. Exceptions are used to handle errors external to the program and assertions are used to verify assumptions inside the program. In other words, assertions are a debugging tool while exceptions handle situations that are beyond your control as a programmer.

How to do it…

Perform the following steps by using assertions and exceptions:

  1. Any time you make an assumption about program state, explicitly express it with assert.

  2. Whenever environmental or user data prevents your function from doing its job, throw an exception.

  3. Write assert(0); on any branch that you believe ought to be unreachable code.

The code is as follows:

struct MyRange {
  int current = 0;
  @property bool empty() { return current < 10; }
  @property int front() {
    // it is a programming error to call front on an emptyrange
    // we assume current is valid, so we'll verify withassert.
    assert(!empty);
    return current...