如何解决“;Erlang异常错误”;

如何解决“;Erlang异常错误”;,erlang,otp,Erlang,Otp,调试Erlang聊天引擎时,我不断收到异常错误 错误消息如下: 异常错误:没有与代码匹配的函数子句, {button,1},#{button=>[],code=>[a,b,c,d],length=>4}) 知道如何调试吗 已定义函数locked(异常还应告诉您其定义在哪个while和哪一行开始),但没有一个子句与异常中显示的参数匹配 例如,如果我们定义 nfcm([H|T],X) -> [H,X|T]; nfcm({A,B},C) -> {A,C,B}. 我们可以调

调试Erlang聊天引擎时,我不断收到异常错误

错误消息如下:

异常错误:没有与代码匹配的函数子句, {button,1},#{button=>[],code=>[a,b,c,d],length=>4})


知道如何调试吗

已定义函数
locked
(异常还应告诉您其定义在哪个while和哪一行开始),但没有一个子句与异常中显示的参数匹配

例如,如果我们定义

nfcm([H|T],X) ->
    [H,X|T];
nfcm({A,B},C) ->
    {A,C,B}.
我们可以调用
nfcm([1,2,3],4)
nfcm({1,2},3)
来获得
[1,4,2,3]
{1,3,2}
,但是调用
nfcm(1,2)
nfcm({1,2,3},4)
会导致异常,因为
1
既不匹配列表,也不匹配元组,
1,3},不匹配两个元素的元组


有两种方法可以解决此问题:要么修复函数的定义,要么修复参数以匹配现有定义。

好,这与参数匹配现有定义有关。对其进行排序,调试过程正常

嗯,我做了一个调整,运行了一个命令代码\u lock:start\u link([1,2,3],4)。我还收到另一个**异常错误:未定义的函数代码\u锁定:开始\u链接/2。注释不是粘贴代码的最佳位置。最好用代码更新问题。好的。我会更新这个问题。嗯,我做了一个调整,运行了一个命令代码\u lock:start\u link([1,2,3],4)。我得到了另一个**异常错误:未定义的函数代码\u lock:start\u link/2。谢谢@choroba的提示。