TSINGSEE青犀视频行人智能检测测试报错panic: runtime error排查过程

Posted TSINGSEE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TSINGSEE青犀视频行人智能检测测试报错panic: runtime error排查过程相关的知识,希望对你有一定的参考价值。

上一篇我们介绍了TSINGSEE青犀视频行人智能检测功能在景区项目中的测试,在景区项目系统中,替换本地文件出现报错,错误信息:“panic: runtime error: index out of range [1] with length 1”,此错误意思是程序运行超出索引的范围,会导致程序崩溃。

先看下代码:

var allFile = ""
for _, dirfile := range dirfiles {
   fname := dirfile.Name()
   n := strings.Split(fname, "_")[1]
   allFile += fmt.Sprintf("%s/%s;", dir, n)
}
allFile = allFile[:len(allFile) -1]

nameSplit := strings.Split(arr[index].Filename, ";")
   log.Println("文件有多个需要替换:" + arr[index].Filename)

   DoLocalFile(0, nameSplit,  func() {
      index+=1
      DoValueToReplaceSource(arr, index, cb)
   })

   return

上面的代码是把所有文件夹下的视频文件进行拼接,并使用分号(“;”)为分割符。但是该代码会出现一个错误:引用一个为nil的切片,即下标为0的元素,这个错误会造成代码中出现index out of range错误,这样就会触发panic,使程序不能正常的运行。

这里使用的是分号(“;”)分割,所以只要进行一次的判断,把分号分割出来的字符需要大于1才行,若果是小于等于1的话就会出错。代码修改如下:

nameSplit := strings.Split(arr[index].Filename, ";")
if len(nameSplit) > 1 {
   log.Println("文件有多个需要替换:" + arr[index].Filename)

   DoLocalFile(0, nameSplit,  func() {
      index+=1
      DoValueToReplaceSource(arr, index, cb)
   })

   return
} else {
   if IsExists(arr[index].Filename) {
      ChangeFile(arr[index].Filename)
   } else {
      log.Println("没有此文件路径")
   }
}

修改后该报错即可解决。TSINGSEE青犀视频仍将不断拓展视频直播系统的功能和优势,一方面,通过AI智能分析实现了智能判断,另一方面,通过物联网、大数据等技术获得最鲜活的数据信息,并进行精准的计算,欢迎大家了解或测试。

 

以上是关于TSINGSEE青犀视频行人智能检测测试报错panic: runtime error排查过程的主要内容,如果未能解决你的问题,请参考以下文章

TSINGSEE青犀视频行人检测集成票务系统读取票务系统数据库为空的问题

TSINGSEE青犀视频行人检测对接景区票务系统请求数据库优化时间长问题

TSINGSEE青犀视频景区行人检测分析人流数据程序仅在网页开启时生效的优化

TSINGSEE青犀视频启动行人检测功能程序出现启动两次是什么原因?

TSINGSEE青犀视频景区行人检测程序数据库出错的排查及解决

TSINGSEE青犀视频行人检测后端代码出现保存json数据错误的处理