Elixir:
Gestion des erreurs
Comment faire :
En Elixir, nous utilisons souvent l’appariement de motifs (pattern matching) et l’instruction case
pour gérer différents résultats, y compris les erreurs.
defmodule Example do
def divide(a, b) do
case b do
0 -> {:error, "Impossible de diviser par zéro."}
_ -> {:ok, a / b}
end
end
end
# Division réussie
{:ok, result} = Example.divide(10, 2)
IO.puts("10 / 2 est #{result}")
# Tentative de division par zéro
{:error, reason} = Example.divide(10, 0)
IO.puts("Erreur : #{reason}")
Exemple de sortie :
10 / 2 est 5.0
Erreur : Impossible de diviser par zéro.
Lorsque vous exécutez ce code Elixir, vous obtenez soit une division réussie, soit un message d’erreur, en fonction de votre entrée. Pas de plantages ici !
Plongée approfondie
Autrefois, la gestion des erreurs était souvent une question de vérification des valeurs retournées. Cependant, avec les racines fonctionnelles d’Elixir, nous avons l’appariement de motifs et les tuples étiquetés, comme {:ok, value}
ou {:error, reason}
, qui sont plus élégants.
Il existe d’autres manières de gérer les erreurs en Elixir :
- L’
try
etrescue
d’Elixir, qui ressemblent au traditionneltry-catch
des langages impératifs mais sont moins fréquemment utilisés en raison de la préférence d’Elixir pour l’explicité. - Les superviseurs et GenServers, faisant partie du framework OTP d’Elixir, qui concernent davantage la tolérance aux fautes. Ils surveillent le processus de votre code, prêts à le redémarrer si les choses tournent mal.
Concernant l’implémentation, Elixir s’appuie sur la robustesse d’Erlang. Il traite les erreurs comme juste un autre type de message à gérer avec toute l’élégance de l’appariement de motifs et des fonctions.
Voir aussi
Pour en savoir plus sur la gestion des erreurs en Elixir, consultez :
- Le guide officiel d’Elixir sur la gestion des erreurs.
- Apprenez-en davantage sur les processus et OTP.
- Le forum Elixir est toujours un bon endroit pour poser des questions : https://elixirforum.com.