Wann soll es "abstürzen lassen" und wann soll der Code in Erlang verteidigt werden?

So, mit dem Mantra "let it crash" soll Erlang-Code unempfindlich gegen grausame Weltereignisse wie unerwartetes Ziehen des Steckers, Hardwarefehler und instabile Netzwerkverbindungen sein.

uf der anderen Seite gibt es defensive Programmierung.

ch frage mich, wie ich wissen kann, wann der Prozess nur abstürzen soll und wann er den Fluss mit @ verteidigen soll, wenn ich neu in Erlang biif, case..of, Wachen eingeben?

Say, ich habe ein Authentifizierungsmodul, das @ zurückgeben katrue/false Ergebnis, ob die Authentifizierung erfolgreich war oder nicht. Sollte es nur ein erfolgreiches Szenario geben und abstürzen, wenn die Benutzerauthentifizierung aufgrund einer falschen Anmeldung / eines falschen Kennworts fehlschlägt?

Wie verhält es sich mit anderen Szenarien, wenn ein Produkt nicht in der Datenbank gefunden wird oder die Suchergebnisse leer sind?

Ich nehme an, ich kann defensive Konstrukte nicht vollständig ignorieren, da es in ihrer Natur liegt, dass Wachen den "normalen" Fluss der App verteidigen?

Gibt es eine Faustregel, wann man verteidigen und wann man abstürzen muss?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage