调用catch gen:call可以获得更多的异常信息
gen_server:call内部调用了catch丢失了很多信息 ,外部无法catch到
此外好像没啥区别了
gen:call 同步调用其他服务器进程的方法(内部通过收发消息实现)
如果服务器返回{reply,xx,Status}
那么gen:call返回{ok,xx}
如果服务器没有对应的方法Handler,那么gen:call抛出{'EXIT',_}异常
如果服务器返回{reply,xx,Status}
那么gen:call返回{ok,xx}
如果服务器没有对应的方法Handler,那么gen:call抛出{'EXIT',_}异常
对于gen_server:call来说,服务器返回{reply,xx,Status}的话,gen_server:call就只返回xx
本文详细解析了Erlang中gen_server:call的使用方式及其内部机制。阐述了如何通过gen:call获取更多异常信息,并对比了gen_server:call与gen:call在异常处理上的差异。同时介绍了当服务器返回特定格式时,gen:call如何处理返回值。
2498

被折叠的 条评论
为什么被折叠?



