我正在使用 eredis erlang 客户端,我是 Erlang 的新手。我想知道以下功能可能有什么问题:
foo(Host, Port) ->
case catch eredis:start_link(Host, Port) of
{connection_error, {connection_error, _}} -> {error, "failed"};
{ok, Connection} -> {"done"};
_ -> {error, "Unknown"}
end.
我的理解是,鉴于上述功能和有效的 Redis 主机:端口,例如 localhost:6379,那么如果我这样做:
mymodule:foo('localhost', 6379).
我应该得到答案
{"done"}
而如果例如我这样做:
mymodule:foo('loc', 6379).
我应该得到:
{error, "failed"}
但在后一种情况下,我得到的是:
** exception exit: {connection_error,{connection_error,nxdomain}}
有人可以解释一下我在这里做错了什么吗?
谢谢