首先,上截图;报错如下,有用的信息一共三行。
我首先,肯定是找到我自己代码文件,查看是不是代码写的有误;IDE会不会有错误提示。
于是,定位到security.go第152行;代码如图
IDE没有任何报错提示,并且,错误处理中的err没有触发;如果触发那报错输出中应该有“Error running gin”字眼,没看到。
于是,忽略它;将目标转移到报错的第一个代码文件utils.go第151行,如图
很显然,这个地方就是报错的具体位置;一个函数判断了输入的字符串切片的长度,如果为1则正常;如果大于1则抛出上文中的错误。
(这个时候已经猜到了,还是上文中r.Run(":", strconv.Itoa(config.Port))
的问题;而且这里没有return;直接panic了;所以err没有触发。不过,我们接着往下看。)
看报错中第二个代码文件gin.go第354行,如图
很显然,这是Run那个函数;它把输入的字符串参数交给上文中resolveAddress(addr)函数做处理。这样子问题就明了了。
说明Run只能接收0或一个参数
随后,修改代码;问题解决。
其实,这个报错是属于疏忽大意导致的;我也是排除了很多才发现是代码的问题。