I'm not super familiar with Elixir, but Erlang uses both tuple error responses and panics, it's actually very similar to Go in that way. An erlang process (very similar to a goroutine) can subscribe to another process and will get a message if that process exits with a panic, and can choose what to do with that.
The standard implementation is called supervisor, which you can read more about here, the Erlang documentation is very good: https://www.erlang.org/doc/design_principles/sup_princ