Erlang / Erlang Basics Interview questions
How do you handle errors in Erlang without try/catch?
Erlang's idiomatic style leans on tagged return values for expected, recoverable failure conditions,
reserving exceptions (and try/catch) for genuinely unexpected situations. A function that can
fail in an "ordinary" way typically returns {ok, Value} or {error, Reason}, and the
caller pattern-matches on the outcome.
case file:read_file("config.txt") of {ok, Data} -> process(Data); {error, Reason} -> log_error(Reason) end.
This keeps the "unhappy path" visible in the type of the return value rather than hidden in a control-flow jump, and it composes naturally with pattern matching in function clauses. Genuinely exceptional, programmer-error-style failures (a failed match, a bad arithmetic operation) are left to crash the process and get handled by a supervisor instead — which is the "let it crash" side of Erlang's error strategy.
More Related questions...