关于自定义函数是否要返回error的理解

package main

import (
   "fmt"
   "time"
)

// GetNowTime
// @description 获取当前时间戳
// @return nowTime int64 当前时间戳
// @return err error 错误对象
func GetNowTime() (nowTime int64, err error) {
   var location *time.Location

   // 重要说明:由于LoadLocation()函数会返回error,那么自定义函数也应该返回error
   location, err = time.LoadLocation("Asia/Shanghai")
   if err != nil {
      return
   }

   nowTime = time.Now().In(location).Unix()

   return
}

func main() {
   nowTime, err := GetNowTime() // 获取当前时间戳
   if err != nil {
      fmt.Printf("获取当前时间戳失败:%+v \n", err.Error())
   } else {
      fmt.Printf("当前时间戳:%+v \n", nowTime)
   }
}

// ========== 总结 ========== //
// 1、通常来说,如果自定义函数体内调用的标准库函数会产生error,那么自定义函数就应该返回error,
//    并且如果自定义函数有嵌套还应该向上逐层返回error,直到将error返回给最上层,然后在最上层
//    对错误进行处理。

Copyright © 2024 码农人生. All Rights Reserved