struct std.Error

Overview

This struct is used as a header to an error-describing buffer. More…

struct Error {
    // fields

    uint32_t m_size;
    std.Guid m_guid;
    uint32_t m_code;

    // properties

    string_t const property m_description;
};

Detailed Documentation

This struct is used as a header to an error-describing buffer.

Often times error is completely described by std.Error struct – for example, errno, NTSTATUS or WinError. However, you can store as much information as necessary to fully describe your error. If extra bytes of information are required, they should follow the std.Error header.

Fields

uint32_t m_size

The full size of error-describing buffer. Should always be >= sizeof(std.Error).

std.Guid m_guid

The GUID of the error. It tells Jancy runtime how to interpret m_code and the extra bytes of data following std.Error header.

uint32_t m_code

The numerical code of the error. The actual meaning of this code depends on m_guid field. It may be errno, or NTSTATUS, or some user-defined code.

Properties

string_t const property m_description

Creates and returns human-readable description of the error.

Jancy also supports a special formatter $! which if used inside formatting literal expands into description of the last error:

printf($"cannot open file: $!\n");

The code above is equivalent to:

string_t s = std.getLastError ().m_description;
printf($"cannot open file: $s\n");