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

2.5 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
Common/DTS.CommonCore/Exceptions/OutOfDataException.cs
2026-04-16T12:01:09.381744+00:00 zai-org/GLM-5-FP8 1 fdc72f1eddeb3763

Documentation: OutOfDataException

1. Purpose

This module defines a custom exception class, OutOfDataException, within the DTS.Common.Exceptions namespace. It is designed to signal that a read operation has attempted to access data beyond the available bounds of a stream or buffer. It extends the standard System.Exception class by capturing the specific location (Index) where the failure occurred, facilitating easier debugging of data parsing or deserialization errors.

2. Public Interface

Class: OutOfDataException

Inherits from: System.Exception

Constructor

public OutOfDataException(string ex, long index)

Initializes a new instance of the OutOfDataException class.

  • string ex: The message that describes the error (passed to the base Exception class).
  • long index: The position in the data stream or buffer where the out-of-bounds access occurred.

Properties

public long Index { get; private set; }

Gets the numerical index where the data exhaustion was detected. This property is read-only from outside the class.

3. Invariants

  • Immutability of Index: Once an instance of OutOfDataException is created, the Index property cannot be modified externally (the setter is private).
  • Base Type Guarantee: The type always behaves as a standard CLR exception regarding stack traces and HResult, as it inherits directly from System.Exception.

4. Dependencies

  • Dependencies: This module depends on System (specifically System.Exception).
  • Dependents: Unknown from the source file alone, but intended for use by data readers, parsers, or stream processors within the DTS codebase.

5. Gotchas

  • Misleading Parameter Name: The constructor argument string ex uses a naming convention typically reserved for an inner exception object (e.g., Exception ex). However, in this signature, it represents the exception message string. Developers might mistakenly expect a constructor signature of (string message, Exception innerException).
  • Serialization Support: The class does not explicitly implement the ISerializable pattern (a serialization constructor is missing). If this exception needs to be serialized (e.g., crossing AppDomain boundaries), the Index property may be lost depending on the serialization mechanism used.