Files
2026-04-17 14:55:32 -04:00

57 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
source_files:
- DataPRO/DbAPI/Errors/ErrorCodes.cs
generated_at: "2026-04-16T04:26:28.421504+00:00"
model: "Qwen/Qwen3-Coder-Next-FP8"
schema_version: 1
sha256: "0b2f1f90c61e6679"
---
# Errors
## 1. Purpose
This module defines a centralized set of error codes and a string conversion utility for the `DbAPI` layer of the proprietary codebase. It serves as a canonical source of error constants (e.g., `ERROR_ACCESS_DENIED`, `INVALID_SESSIONID`) used throughout database-related operations, enabling consistent error reporting and handling. The `ResultToString` method maps numeric error codes to human-readable string representations, facilitating debugging and logging.
## 2. Public Interface
- **`public const ulong ERROR_SUCCESS = 0x0`**
Indicates successful operation.
- **`public const ulong ERROR_INVALID_FUNCTION = 0x1`**
Generic error for an invalid or unsupported function call.
- **`public const ulong ERROR_FILE_NOT_FOUND = 0x2`**
Indicates a requested file could not be located.
- **`public const ulong ERROR_PATH_NOT_FOUND = 0x3`**
Indicates a requested path (directory) could not be located.
- **`public const ulong ERROR_ACCESS_DENIED = 0x5`**
Indicates insufficient permissions to perform the requested operation.
- **`public const ulong ERROR_NOT_SUPPORTED = 0x32`**
Indicates the requested operation is not supported.
- **`public const ulong INVALID_SESSIONID = 0x200`**
Indicates an invalid or expired session identifier was provided.
- **`public const ulong ERROR_UNKNOWN = 0x201`**
Fallback error code for unrecognized or unclassified errors.
- **`public const ulong ERROR_NOUSER = 0x202`**
Indicates no user context is available (e.g., unauthenticated or deleted user).
- **`public const ulong ERROR_LOGINFAILED = 0x203`**
Indicates authentication failure (e.g., invalid credentials).
- **`public const ulong ERROR_MISSING_PARAMETER = 0x204`**
Indicates a required parameter was omitted in a function call.
- **`public static string ResultToString(ulong hr)`**
Converts a numeric error code (`hr`) to a descriptive string (e.g., `"ACCESS_DENIED"`). For unrecognized codes, returns the hex representation (e.g., `"205"` for `0x205`).
## 3. Invariants
- All error codes are `const ulong` and assigned explicit hexadecimal values.
- `ResultToString` is deterministic: the same input `hr` always produces the same output string.
- The `switch` statement in `ResultToString` is exhaustive for all defined constants; any value not explicitly handled falls back to hex formatting.
- No mutable state exists in this class (it is `abstract` and contains only constants and a static method).
## 4. Dependencies
- **Internal dependencies**: None (no external references in the provided source).
- **Consumers**: This module is expected to be referenced by other components in the `DbAPI` layer (e.g., database connection, query execution, or session management modules) to standardize error reporting.
- **No external libraries or frameworks** are imported or referenced in this file.
## 5. Gotchas
- The `abstract` modifier on `ErrorCodes` is unusual for a pure constants class (typically `static class` is used in C# for this pattern); this may imply intentional extensibility (e.g., subclassing for environment-specific codes), but no subclasses are present in the provided source.
- The `default` case in `ResultToString` returns `hr.ToString("X")`, which omits the `0x` prefix (e.g., `"205"` instead of `"0x205"`), potentially reducing clarity in logs.
- The constant `ERROR_LOGINFAILED` uses a string literal `"LOGIN_FAILED"` instead of `@"LOGIN_FAILED"` (consistent verbatim string usage elsewhere suggests this may be unintentional).
- No error codes between `0x205` and `0x201` (e.g., `0x205``0x201` is invalid range; likely meant `0x205``0x209`) are defined, suggesting possible gaps or future expansion points.
- None identified from source alone.