Schrijven naar standaardfout

Lua:
Schrijven naar standaardfout

Hoe te:

Lua communiceert met stderr via io.stderr. Zo print je een eenvoudige foutmelding:

io.stderr:write("Fout: Er is iets misgegaan!\n")

Voorbeelduitvoer op stderr:

Fout: Er is iets misgegaan!

Je kunt het fancy maken en combineren met foutafhandeling:

if not file then
    io.stderr:write("Fout: Bestand niet gevonden.\n")
    os.exit(1) -- stop met een niet-nul exitcode
end

Diepgaand Onderzoek

Lang geleden kregen computers twee aparte stromen voor uitvoer—stdout voor de hoofdgegevens, stderr voor de oepsjes. Lua hield deze Unix-conventie in stand. Soms leiden mensen stdout om (zoals naar een bestand) maar willen ze fouten toch op het scherm hebben. Daar komt stderr om de hoek kijken.

Alternatieven? Sommigen schrijven naar een logbestand, gebruiken een logboekbibliotheek, of sturen het over netwerken. Maar stderr is laagdrempelig voor eenvoudige zaken.

Wat implementatie betreft, Lua’s io.stderr is een bestandshandle. Het is net als io.stdout of io.stdin, klaar voor gebruik zonder gedoe. Achter de schermen, of het nu een tekstbestand of een terminal is, Lua zweet niet—io.stderr handelt het af.

Zie Ook

Duik dieper of krijg wat context: