Icarus
Vehicle Simulation as a Transformable Computational Graph, built on Vulcan and Janus
Loading...
Searching...
No Matches
Error.hpp File Reference

Consolidated error handling for Icarus. More...

#include <cstdint>
#include <optional>
#include <stdexcept>
#include <string>
Include dependency graph for Error.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  icarus::SimulationError
class  icarus::Error
 Base class for all Icarus exceptions. More...
class  icarus::SignalError
 Signal-related errors (registration, resolution, wiring). More...
class  icarus::ConfigError
 Configuration/parsing errors with optional file context. More...
class  icarus::LifecycleError
 Lifecycle ordering/state errors. More...
class  icarus::WiringError
 Wiring and signal routing errors. More...
class  icarus::IntegrationError
 Integration/ODE solver errors with time context. More...
class  icarus::StateError
 State vector management errors. More...
class  icarus::IOError
 File and I/O operation errors. More...
class  icarus::ConditionError
 Condition parsing and evaluation errors. More...
class  icarus::NotImplementedError
 Stub for unimplemented features. More...
class  icarus::ProvisionError
class  icarus::StageError
class  icarus::StepError
class  icarus::TypeMismatchError
class  icarus::DuplicateSignalError
class  icarus::SignalNotFoundError
class  icarus::UnwiredInputError
class  icarus::StateSizeMismatchError
class  icarus::StepSizeTooSmallError

Namespaces

namespace  icarus

Macros

#define ICARUS_THROW(error)
 Throw an error (simple version, no logging).
#define ICARUS_THROW_CTX(error, time, component)
 Throw an error with context (for future logging integration).

Typedefs

using icarus::RoutingError = WiringError
using icarus::ConfigurationError = ConfigError
using icarus::IntegratorError = IntegrationError

Enumerations

enum class  icarus::Severity : uint8_t { icarus::INFO , icarus::WARNING , icarus::ERROR , icarus::FATAL }
enum class  icarus::SignalErrorKind {
  icarus::NotFound , icarus::Duplicate , icarus::TypeMismatch , icarus::Unwired ,
  icarus::NullPointer
}
 Signal-related error categories. More...
enum class  icarus::LifecyclePhase {
  icarus::Provision , icarus::Stage , icarus::Step , icarus::Reset ,
  icarus::Other
}
 Simulation lifecycle phases. More...

Functions

template<typename E>
void icarus::ThrowError (E &&error, double time=0.0, const std::string &component="")
 Helper to throw an error and optionally log it.

Detailed Description

Consolidated error handling for Icarus.

Provides a flattened exception hierarchy with 8 error categories. Each category has contextual information rather than many subclasses.

Macro Definition Documentation

◆ ICARUS_THROW

#define ICARUS_THROW ( error)
Value:
throw(error)

Throw an error (simple version, no logging).

◆ ICARUS_THROW_CTX

#define ICARUS_THROW_CTX ( error,
time,
component )
Value:
::icarus::ThrowError((error), (time), (component))
void ThrowError(E &&error, double time=0.0, const std::string &component="")
Helper to throw an error and optionally log it.
Definition Error.hpp:497

Throw an error with context (for future logging integration).

Parameters
errorThe error to throw
timeSimulation time
componentComponent name for logging context