2025-11-09 23:36:12 -06:00

36 lines
1.0 KiB
C++

#include "Errors.hpp"
#include <iostream>
using namespace nb;
class TestError : public ErrorBase<TestError> {
public:
TestError(unsigned int code)
: ErrorBase<TestError>(code, ErrorBase<TestError>::lookup(code)) {}
TestError(unsigned int code, const std::exception& trace)
: ErrorBase<TestError>(code, ErrorBase<TestError>::lookup(code), trace) {}
enum ErrorCodes : unsigned int {
A, B, C, D
};
static const std::string type;
static const ErrorCodeMap ErrorMessages;
};
const std::string TestError::type="TestError";
const ErrorCodeMap TestError::ErrorMessages{
{TestError::ErrorCodes::A, "Hey!"},
{TestError::ErrorCodes::B, "How"},
{TestError::ErrorCodes::C, "You"},
{TestError::ErrorCodes::D, "Doin"}
};
int main() {
TestError d(TestError::ErrorCodes::D, std::out_of_range("hey"));
TestError c(TestError::ErrorCodes::C, d);
TestError b(TestError::ErrorCodes::B, c);
TestError a(TestError::ErrorCodes::A, b);
throw Error(Error::ErrorCodes::UNDEFINED, a);
return 0;
}