type.go use recover