toString method

  1. @override
String toString()
override

A string representation of this object.

Some classes have a default textual representation, often paired with a static parse function (like int.parse). These classes will provide the textual representation as their string representation.

Other classes have no meaningful textual representation that a program will care about. Such classes will typically override toString to provide useful information when inspecting the object, mainly for debugging or logging.

Implementation

@override
String toString() {
  final buffer = StringBuffer();
  buffer.writeln('HDF5 Error: $operation failed');
  buffer.writeln('Message: $message');

  if (filePath != null) {
    buffer.writeln('File: $filePath');
  }

  if (objectPath != null) {
    buffer.writeln('Path: $objectPath');
  }

  if (details != null) {
    buffer.writeln('Details: $details');
  }

  if (recoverySuggestions.isNotEmpty) {
    buffer.writeln('\nRecovery Suggestions:');
    for (int i = 0; i < recoverySuggestions.length; i++) {
      buffer.writeln('  ${i + 1}. ${recoverySuggestions[i]}');
    }
  }

  if (_debugMode && originalError != null) {
    buffer.writeln('\nOriginal Error: $originalError');
    if (stackTrace != null) {
      buffer.writeln('Stack Trace:\n$stackTrace');
    }
  }

  return buffer.toString();
}