当前位置: 首页 > news >正文

化妆品网站设计欣赏做网站的优化价格

化妆品网站设计欣赏,做网站的优化价格,如何修改网站备案信息,网站服务器做缓存吗1、异常场景 网络故障硬件故障组件故障输入错误逻辑错误链路调度错误 2、异常处理方式 # python或者java异常处理 try 可能出现的错误 catch对错误进行处理 xxx,err : 代码 if err ! nil {代码出现错误,需要做处理 }3、自定义错误 有两种方法:1、通过…

1、异常场景

  • 网络故障
  • 硬件故障
  • 组件故障
  • 输入错误
  • 逻辑错误
  • 链路调度错误

2、异常处理方式

# python或者java异常处理
try 可能出现的错误
catch对错误进行处理 
xxx,err := 代码
if err != nil {代码出现错误,需要做处理
}

3、自定义错误

有两种方法:1、通过errors包中的errors.New方法定义。 2、通过fmt.Errorf方法定义错误。

package mainimport ("errors""fmt"
)// 定义一个函数,用来实现除法
func division(i1, i2 float64) (res float64, err error) {fmt.Println("需要计算的数字是:", i1, i2)if i2 == 0 {return 0, errors.New("输入的分母不能为0")} else {res = i1 / i2return res, nil}
}func main() {// go 错误定义为一种类型,err = ccc// 像使用其他类型的变量一样,去处理我们的错误。// go打开一个本地文件。// 1. 打开这个文件 文件不存在  没有权限// 2. 写入内容/读取内容// f, err := ioutil.ReadFile("./text.txt")// if err != nil {// 	// 此时readfile报错,出现了问题// 	fmt.Println("读取文件内容失败:", err.Error())// } else {// 	fmt.Println(string(f))// }// 自定义errerr := errors.New("这是一个自定义错误")fmt.Println(err)err2 := fmt.Errorf("这是一个自定义错误: %s,它是使用fmt生成的", "这是错误内容")fmt.Println("这是一个使用fmt定义的错误:", err2.Error())// varres, err3 := division(2, 0)if err3 != nil {fmt.Println("计算错误:", err3.Error())} else {fmt.Println("计算结果:", res)}
}

4、程序异常终止

4.1 程序终止panic

panic:可以在异常的时候让程序终止执行,退出程序。或者是程序所强依赖的基础组件不可用。
此时程序已经无法继续正常工作,此时可以使用panic抛出异常,并且把程序退出。
切记:panic不能滥用,不能到处使用panic

package mainimport ("errors""fmt""time"
)// 实现数据库的链接
func connectDatabase(address string, port int) (string, error) {// 如果address和port为空if address == "" || port == 0 {return "", errors.New("无法链接数据库")} else {return "数据库链接成功", nil}
}func main() {s, err := connectDatabase("", 0)for {time.Sleep(5 * time.Second)// 模式启动程序if err != nil {// 说明无法链接数据库fmt.Println(err)panic(err) // 就会退出程序} else {// 链接成功fmt.Println(s)// 正常启动程序}}
}

4.2 defer 程序退出收尾处理

defer: 是go语言中的一种延迟调用机制,defer里面的内容可以在函数return之前或者是程序panic之前执行。
一般用于资源回收和数据返回,defer也可以用于异常时的恢复。
defer是可以有多个的,采用先进后出的机制。

package mainimport ("errors""fmt"
)// 实现数据库的链接
func connectDatabase(address string, port int) (string, error) {// 如果address和port为空if address == "" || port == 0 {return "", errors.New("无法链接数据库")} else {return "数据库链接成功", nil}
}// 返回数据给前端
func returnDataToFrontend(msg string) {fmt.Println("返回给前端的数据是:", msg)
}func main() {//比如一些常见的场景// 1. 关闭连接池// 2. 关闭文件句柄// 3. 记录一些异常日志msg := "返回给前端的数据"defer returnDataToFrontend("1")defer returnDataToFrontend("2")defer returnDataToFrontend("3")defer returnDataToFrontend("4")defer returnDataToFrontend(msg) // 不会真正的执行_, err := connectDatabase("", 0)if err != nil {fmt.Println(err)// retpanic(err)}// 返回数据给前端// returnDataToFrontend(msg)
}

5、异常捕获

package mainimport "fmt"func printSliceData(s []string) {// 使用recover进行异常捕获defer func() { // 匿名函数fmt.Println("程序执行失败, 捕获异常")if err := recover(); err != nil {// recover是用来捕获panic的报错的// 尝试恢复,防止程序异常退出fmt.Println("捕获到了一个错误:", err)// 发出一个告警// 记录一条日志// 返回给前端:说传入的值不对}}()fmt.Println("切片的内容:", s)// 打印一下切片的第三个值fmt.Println("切片的第三个值是:", s[2])
}func main() {// recover 异常的捕获和处理//s := []string{"a", "b"}printSliceData(s)}
http://www.yayakq.cn/news/606600/

相关文章:

  • 聊城建设局网站三大框架网站开发
  • 建设银行人力资源系统网站首页百度主动提交工具 wordpress
  • php网站的html文件放在那个里面的企业产品网站源码
  • 上海专业网站建做网站有好创意想法
  • 晚上做设计挣钱的网站中国工商建设标准化协会网站
  • 佛山顺德网站建设wordpress免费企模板下载
  • 开公司做购物网站是不是想多了文化网站开发背景
  • 长沙专业网站建设品牌ppt模板免费网址
  • 怎么做网站宣传网站的设计与开发的图片
  • 大港建站公司做一个商品网站多少钱
  • 校园网站建设的背景海南建设银行官方网站
  • seo整站优化新站快速排名查询系统网站模板
  • 做蜂蜜上什么网站网站备案率是什么
  • 如何网站开发语言黑料社2023
  • dede装修网站模板网站设计怎么做视频
  • 如何建立一个外贸公司网站正确认识部门网站建设
  • 溧阳网站设计五金加工厂怎么做网站
  • 网站推广的途径有哪些企业类网站有哪些
  • 网站建设对企业的发展网站的首页怎么做的
  • 中山专业网站建设wordpress 功能 去除
  • 优秀的网站有哪些最近做网站开发有前途没
  • 装修高端网站建设网站进度表
  • 网站开发分析报告深圳市市场监督管理局官网
  • 网站整站模板下载株洲网络学院
  • 网站开发工作量评估酒店设计公司排名
  • 做徽章的企业网站长沙网站搭建首选智投未来
  • 济南建设网站平台软件开发工具的基本功能是什么
  • 怎么把做的网页放网站游戏开发者之家
  • 柘城县网站建设天津市武清区建设银行网站
  • 网站建设招标书技术介绍wordpress首页主标题移到后面