gen:call和gen_server:call的区别

 
调用catch gen:call可以获得更多的异常信息

gen_server:call内部调用了catch丢失了很多信息 ,外部无法catch到
 
此外好像没啥区别了
 
 
gen:call 同步调用其他服务器进程的方法(内部通过收发消息实现)
如果服务器返回{reply,xx,Status}
那么gen:call返回{ok,xx}
如果服务器没有对应的方法Handler,那么gen:call抛出{'EXIT',_}异常
 
对于gen_server:call来说,服务器返回{reply,xx,Status}的话,gen_server:call就只返回xx

你可能感兴趣的:(server,服务器)