Fish Shell:
Gestion des erreurs

Comment faire :

Pour capturer les erreurs dans Fish, appuyez-vous sur la commande status et les conditionnels. Disons que la commande ping échoue ; voici comment détecter cela :

ping -c 1 example.com
if not status is-success
    echo "Quelque chose d'étrange s'est produit avec le ping."
end

Sortie exemple si ping échoue :

Quelque chose d'étrange s'est produit avec le ping.

Pour gérer un code d’erreur spécifique, utilisez status --is :

false
if status --is 1
    echo "Erreur capturée avec le code 1."
end

Sortie exemple :

Erreur capturée avec le code 1.

Pour une approche plus robuste, envisagez l’utilisation d’une fonction :

function try_ping
    ping -c 1 example.com
    or begin
        echo "Ping échoué avec le statut $status"
        return 1
    end
end

try_ping

Plongée Profonde

La gestion des erreurs dans Fish ne correspond pas au paradigme try/catch que vous pourriez connaître des langages de plus haut niveau. Au lieu de cela, vous disposez de statuts de sortie simples fournis par la commande status.

Historiquement, dans les systèmes de type Unix, un statut de sortie de 0 signifie le succès, tandis que toute valeur non nulle indique une erreur, ce qui reflète communément différentes raisons d’échec. Cette convention est employée par la plupart des utilitaires en ligne de commande et donc, par Fish lui-même.

Les alternatives aux vérifications de status dans Fish incluent la gestion des signaux via trap dans d’autres shells, mais Fish préfère des vérifications de statut plus explicites, car c’est plus propre et moins sujet à des effets secondaires.

Du point de vue de la mise en œuvre, la gestion des erreurs dans Fish reste simple mais puissante, en grande partie grâce à sa nature non bloquante et à l’accent mis sur une syntaxe claire, comme le montrent les exemples. Les codes d’erreurs s’intègrent bien avec les fonctions, permettant une gestion des erreurs modulaire et lisible.

Voir Aussi