toString method
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() {
String std;
if (ShellConfig.includeRawBytesOnException) {
try {
std = """
stdout system encoding: ${const SystemEncoding().decode(stdout)}
stderr system encoding: ${const SystemEncoding().decode(stderr)}
stdout bytes: $stdout
stderr bytes: $stderr
""";
} catch (e) {
std = """
Could not decode stdout and stderr bytes to system encoding.
stdout bytes: $stdout
stderr bytes: $stderr
""";
}
} else {
try {
std = """
stdout system encoding: ${const SystemEncoding().decode(stdout)}
stderr system encoding: ${const SystemEncoding().decode(stderr)}
""";
} catch (e) {
std = "Could not decode stdout and stderr bytes to system encoding.";
}
}
return """
ShellException: The shell process failed.
PID: $pid
Executable: $executable
Arguments: $args
Working directory at start: $workingDirectory
Exit code: $exitCode
$std
""";
}