Fish Shell:
Feilhåndtering
Hvordan:
For å fange feil i Fish, støtt deg på status kommandoen og betingelser. Si at ping mislykkes; slik kan du oppdage det:
ping -c 1 example.com
if not status is-success
echo "Noe fiskete skjedde med ping."
endEksempelutdata hvis ping mislykkes:
Noe fiskete skjedde med ping.For å håndtere en spesifikk feilkode, bruk status --is:
false
if status --is 1
echo "Fanget en feil med kode 1."
endEksempelutdata:
Fanget en feil med kode 1.For en mer robust tilnærming, vurder å bruke en funksjon:
function try_ping
ping -c 1 example.com
or begin
echo "Ping mislyktes med status $status"
return 1
end
end
try_pingDypdykk
Feilhåndtering i Fish matcher ikke try/catch paradigmet som du kanskje kjenner fra høyere nivå språk. I stedet har du greie utgangsstatusser gitt av status kommandoen.
Historisk sett, i Unix-lignende systemer, betyr en utgangsstatus på 0 suksess, mens hvilken som helst ikke-null verdi indikerer en feil, som ofte reflekterer forskjellige feilårsaker. Denne konvensjonen er brukt av de fleste kommandolinjeverktøyene og dermed, av Fish selv.
Alternativer til status sjekker i Fish inkluderer signalhåndtering via trap i andre skall, men Fish foretrekker mer eksplisitte statussjekker, fordi det er renere og mindre utsatt for bieffekter.
Når det gjelder gjennomføring, forblir feilhåndteringen i Fish enkel men kraftfull, i stor grad på grunn av sin ikke-blokkerende natur og vekt på klar syntaks, som vist i eksemplene. Feilkoder går pent sammen med funksjoner, noe som tillater modulær og lesbar feilhåndtering.
Se Også
- Fish dokumentasjon om betingelser: https://fishshell.com/docs/current/language.html#conditionals
- Fish veiledning om feilhåndtering: https://fishshell.com/docs/current/tutorial.html#error-handling