All Error-Code Facilities

All Error-Code Facilities

A compact index of non-throwing error reporting facilities centered on <system_error> and adjacent standard-library types.

How to use this reference page

Use reference pages to confirm names, categories, nearby facilities, and the constraints that matter before writing or reviewing code.

  • Scan the top of the page first to identify the primary types, functions, or algorithm families involved.
  • Use the nearby-page links when your question is really about a companion header, related algorithm family, or broader subsystem.
  • Validate tricky behavior with a small compileable example before relying on memory for details like invalidation, ordering, allocation, or lifetime rules.

All Error-Code Facilities

Core types from <system_error>

Factory and conversion helpers

Filesystem integration

Typical API style

Practical rules

Small worked example

#include <filesystem>
#include <string_view>
#include <system_error>

std::error_code prepare_output_directory(std::string_view name) {
	std::error_code ec;
	std::filesystem::path dir{"output"};
	dir /= name;
	std::filesystem::create_directories(dir, ec);
	return ec;
}

int main() {
	if (std::error_code ec = prepare_output_directory("reports")) {
		return ec == std::errc::permission_denied ? 2 : 1;
	}
	return 0;
}

This is the common error_code shape: do a non-throwing operation, branch locally, and keep the caller in charge of how much error detail matters.

Decision habit

Example in practice

#include <filesystem>
#include <system_error>

int main() {
    std::error_code ec;
    std::filesystem::create_directories("output/cache", ec);
    if (ec) {
        return ec == std::errc::permission_denied ? 2 : 1;
    }
    return 0;
}