После того, как копание глубже, похоже, ошибка возникает из-за того, что вы используете номер порта, который больше максимально допустимого значения.
Порты должны находиться в диапазоне 0..65535
, если мы go найдем исходный код функции, выдавшей исключение, мы можем заметить следующее:
do_connect(Addr = {A,B,C,D}, Port, Opts, Time)
when ?ip(A,B,C,D), ?port(Port)
Я не могу найти источник для ?port
, однако я уверен, что он проверяет, что порт находится в границах (неотрицательных и меньше 65535).
Теперь причина, по которой вы не смогли обработать ошибку, заключается в том, что в некоторых случаях точка exit()
вызывается и процесс выхода должен обрабатываться немного иначе:
try do
result = HTTPoison.get "http://example.com:6500000"
catch
:exit, reason -> reason
end
Вы столкнулись с ошибкой, которая не обрабатывается библиотекой HTTPoison
и распространяется на ваш приложения, так как exit
сообщения распространяются, если выходы не trapped .
PS: вы не должны обрабатывать ошибки, подобные этой, в вашем приложении, если нет другого выбора.