LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
error.h File Reference

The exception types the port throws. More...

#include <cstddef>
#include <stdexcept>
#include <string>
#include <utility>
Include dependency graph for error.h:

Go to the source code of this file.

Classes

struct  line::ErrorKind
 The <kind> part of a LINE:<category>:<kind> identifier (see _kb/17-error-vocabulary.md): an identifier such as Cache, SchedStrategy_PS, NonConvergence or Method. More...
class  line::Error
 Base error for the multiprecision C++ port. More...
class  line::InputError
 Malformed or inconsistent input (dimensions, negative populations, ...): LINE:input:<kind>. More...
class  line::NumericError
 The algorithm cannot produce a trustworthy answer on this instance: LINE:numerical:<kind>. More...
class  line::UnsupportedError
 A refusal: the feature, method or analysis is not covered: LINE:unsupported:<kind>. More...
class  line::ExternalError
 A tool, binary, service or bridge LINE depends on is missing or failed: LINE:external:<kind>. More...
class  line::InternalError
 An invariant LINE should guarantee was violated, i.e. More...

Namespaces

namespace  line
 Conservation laws of a layered queueing network, enumerated from its structure.
namespace  line::error_detail

Functions

bool line::error_detail::valid_kind (const std::string &s)
 True when s matches [A-Za-z][A-Za-z0-9_]*, the grammar of a kind.
std::string line::error_detail::make_id (const char *category, const std::string &kind)
 LINE:<category>:<kind>, or LINE:internal:BadErrorId for a malformed kind.

Detailed Description

The exception types the port throws.

Error and its five refinements, one per category of the cross-codebase error vocabulary (_kb/17-error-vocabulary.md): InputError for a malformed model or argument, NumericError for a computation that cannot produce an answer, UnsupportedError for a feature the chosen algorithm does not cover, ExternalError for a missing or failed tool, and InternalError for a bug. Nothing in the library calls exit() or writes to stderr on failure: the CLI catches these at main and the bindings map them to exceptions, so the same code path serves both.

Definition in file error.h.