目前库中,检查 Event Name 不符合规则后会直接 panic,逻辑隐蔽,处理粗暴,很容易被坑。
建议改成返回 error
相关代码见 util.go:
// goodName check event name is valid.
func goodName(name string, isReg bool) string {
name = strings.TrimSpace(name)
if name == "" {
panic("event: the event name cannot be empty")
}
// on add listener
if isReg {
if name == AllNode || name == Wildcard {
return Wildcard
}
if strings.HasPrefix(name, AllNode) {
return name
}
}
if !goodNameReg.MatchString(name) {
panic(`event: name is invalid, must match regex:` + goodNameReg.String())
}
return name
}
目前库中,检查 Event Name 不符合规则后会直接 panic,逻辑隐蔽,处理粗暴,很容易被坑。
建议改成返回 error
相关代码见 util.go: