C#:
Schrijven naar standaardfout
Hoe te:
In C#, schrijf naar stderr met behulp van Console.Error.WriteLine()
. Het lijkt op Console.WriteLine()
, alleen gericht op de foutstroom.
using System;
class Program
{
static void Main()
{
Console.WriteLine("Bericht Standaarduitvoer."); // Gaat naar stdout
Console.Error.WriteLine("Foutbericht!"); // Gaat naar stderr
}
}
Voorbeelduitvoer als alles in orde is:
Bericht Standaarduitvoer.
Maar, als er iets mis is, zou je zien:
Bericht Standaarduitvoer.
Foutbericht!
Het foutbericht verschijnt in de console of kan worden omgeleid naar een bestand.
Diepgaande Duik
Historisch gezien dateert het scheiden van stdout en stderr terug naar Unix-systemen, waar het schone gegevensverwerking en foutafhandeling mogelijk maakte. In C# (en .NET in het algemeen) vertegenwoordigt Console.Out
stdout, terwijl Console.Error
stderr vertegenwoordigt.
Je kunt beide omleiden met behulp van Console.SetOut()
en Console.SetError()
. Streams zoals FileStream
of StringWriter
kunnen de uitvoer vangen voor logging. Het is cruciaal in scenario’s waar foutmeldingen niet mogen mengen met reguliere gegevens, zeg, wanneer stdout wordt gepijpt naar een ander programma.