欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 試了下Golang實現try catch的方法

試了下Golang實現try catch的方法

熱門標簽:百度地圖標注位置網站 如何利用高德地圖標注家 武漢百應人工智能電銷機器人 上海企業(yè)外呼系統排名 電腦外呼系統輻射大嗎 智能語音電銷的機器人 開通400電話申請流程 400手機電話免費辦理 揚州電銷外呼系統軟件

前言

Golang語言有諸多優(yōu)點:靜態(tài)編譯、協程、堪比c語言的高性能。

但是也有一些令人發(fā)指的地方 —— 經常被人調侃 五行代碼,三行錯誤處理 的異常錯誤處理方式,如下問題出現的地方

func readFile(path string) ([]byte, error) {
    file, err := os.Open(path)
    if err != nil {
        return nil, err
    }
    defer file.Close()
    return ioutil.ReadAll(file)
}

函數readFile的功能是讀出指定文件本身的內容并將其返回,同時當有錯誤發(fā)生時立即向調用方報告。
根據Golang編程范式,每個可能導致錯誤的函數都應該將error作為最后一個返回值,所以Golang代碼中隨處都是"if err != nil"語句。 五行代碼,三行錯誤處理 的調侃段子由此在圈內流行

能不能 try catch

我之前常用編程語言 Python 和 PHP 的時候,早已經習慣 try catch 處理異常的方式。于是對 Golang 使用流程控制 配合 panic()、recover() 一直耿耿于懷,為了以后舒服今天就來實現一下原來 try catch異常錯誤處理方式

Golang 語言中擁有 recover() 函數作為宕機恢復機制,讓程序在宕機流程中的 goroutine 中恢復。

所以我們能夠用 recover() 函數作為程序中是否出現的鉤子。當出現異常時,由它調起我們的異常處理函數。首先簡單實現一下:

package main

import "fmt"

func try(userFn func()) {
 defer func() {
  if err := recover();err != nil{
   fmt.Printf("程序執(zhí)行發(fā)生異常: %v\n", err)
  }
 }()

 userFn()
}

func foo(num int)  {
 if num  10 {
  panic("number is less than 10")
 }else {
  panic("number is greater than 10")
 }
}

func main()  {
 try(func() {
  foo(9)
 })

 try(func() {
  foo(11)
 })
}

go run main.go 運行:

$ go run _test/demo3/test3.go
程序執(zhí)行發(fā)生異常: number is less than 10
程序執(zhí)行發(fā)生異常: number is greater than 10

從上可以看出,recover() 函數完成我們讓它作為鉤子,的作用,調起了打印 程序執(zhí)行發(fā)生異常 的信息。

加入處理異常方法

捕抓到異常還需要處理異常,而不是簡單打印 程序執(zhí)行發(fā)生異常。所以還需要增加匿名方法作為異常處理方法,改造如下:

func try(userFn func(), catchFn func(err interface{})) {
 defer func() {
  if err := recover();err != nil{
   catchFn(err)
  }
 }()

 userFn()
}

...

func main()  {
 try(func() {
  foo(9)
 }, func(err interface{}) {
  fmt.Printf("程序執(zhí)行發(fā)生異常: %v\n", err)
 })

 try(func() {
  foo(11)
 }, func(err interface{}) {
  fmt.Printf("程序執(zhí)行發(fā)生異常: %v\n", err)
 })
}

這樣就可以隨心所欲傳入自定義處理異常的方法

總結

以上只是自己簡單實現了try catch,其中還有很多缺陷,比如:不支持 finally 函數處理,try catch封裝過于簡單。

到此這篇關于試了下Golang實現try catch的方法的文章就介紹到這了,更多相關Golang try catch內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 利用golang實現封裝trycatch異常處理實例代碼
  • Golang try catch與錯誤處理的實現

標簽:延邊 新余 武漢 張掖 黑龍江 宜賓 江西 嘉峪關

巨人網絡通訊聲明:本文標題《試了下Golang實現try catch的方法》,本文關鍵詞  試,了,下,Golang,實現,try,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《試了下Golang實現try catch的方法》相關的同類信息!
  • 本頁收集關于試了下Golang實現try catch的方法的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    在线观看三级视频欧美| 国产精品天干天干在线综合| 亚洲三级电影网站| 国产成人欧美日韩在线电影| 37p粉嫩大胆色噜噜噜| 91.com在线观看| 亚洲一区二区欧美| 91浏览器打开| 欧美性受极品xxxx喷水| 亚洲免费资源在线播放| 成人免费的视频| 国精品无码一区二区三区| 精品处破学生在线二十三| 欧美aⅴ一区二区三区视频| 国产精品久久久久影院老司| 久久精品国产色蜜蜜麻豆| 国产三级视频网站| 欧美成人午夜电影| 精品中文字幕一区二区小辣椒 | 日韩网站在线看片你懂的| 香蕉乱码成人久久天堂爱免费| 欧美丰满熟妇bbb久久久| 欧美日韩亚洲另类| 亚洲超碰97人人做人人爱| 一级黄色电影片| 91精品国产91热久久久做人人| 日韩国产欧美在线播放| 成人乱码一区二区三区av| 久久久亚洲精品石原莉奈| 国产一区二区三区在线观看免费| 欧美老女人性生活视频| 中文字幕av一区二区三区高 | 狠狠色丁香久久婷婷综合_中| 自拍偷拍视频亚洲| 国产欧美视频一区二区三区| 懂色av一区二区三区蜜臀| 色综合中文字幕国产| 亚洲视频一区二区免费在线观看| 免费国偷自产拍精品视频| 欧美精选在线播放| 另类人妖一区二区av| 69xxx免费| 国产精品白丝在线| 亚洲乱妇老熟女爽到高潮的片| 欧美一区二区美女| 国产一二精品视频| 在线观看av不卡| 天天影视涩香欲综合网| 国产一级久久久久毛片精品| 中文字幕成人网| 国产黄色一区二区三区| 欧美一卡二卡三卡四卡| 国产精品综合二区| 欧美午夜视频网站| 裸体歌舞表演一区二区| 国产精品三区在线观看| 亚洲高清一区二区三区| 在线观看免费小视频| 中文字幕字幕中文在线中不卡视频| 亚洲一级Av无码毛片久久精品| 精品日韩av一区二区| 成人福利视频网站| 欧美一区二区久久| 成人av在线资源网站| 91麻豆精品国产91久久久资源速度| 久草热8精品视频在线观看| 一本一道综合狠狠老| 日韩1区2区3区| 色综合久久综合网| 日本不卡一区二区三区高清视频| 人人艹在线视频| 五月天激情综合网| 久久r这里只有精品| 日本一不卡视频| 国产一区二区视频在线观看免费| 视频一区视频二区中文| 国产成人自拍网站| 日av在线不卡| 91国产丝袜在线播放| 久久99精品久久久久婷婷| 欧美色图12p| 国产成人在线观看免费网站| 91精品久久久久久蜜臀| 成人久久久精品乱码一区二区三区| 欧美一卡2卡三卡4卡5免费| a美女胸又www黄视频久久| 精品国产乱码久久久久久久久 | 国产艳妇疯狂做爰视频| 国产欧美日韩中文久久| 欧产日产国产精品98| 亚洲丝袜精品丝袜在线| 成人黄色免费网址| 亚洲成人av在线电影| 黑鬼狂亚洲人videos| 麻豆91在线观看| 色婷婷激情久久| 精品一区二区三区香蕉蜜桃| 欧美日韩dvd在线观看| 成人综合在线观看| 26uuuu精品一区二区| 亚洲欧美高清在线| 一区二区在线看| 亚洲波多野结衣| 九九在线精品视频| 日韩午夜在线影院| 天堂www中文在线资源| 亚洲精品午夜久久久| 911国产在线| 激情成人综合网| 日韩免费电影网站| 久久久久久婷婷| 亚洲一卡二卡三卡四卡无卡久久| 一本久道中文字幕精品亚洲嫩| 狠狠色狠狠色综合| 精品粉嫩超白一线天av| 亚洲蜜桃精久久久久久久久久久久 | 一区二区三区日韩精品| 永久免费看片直接| 国产精品一区二区久激情瑜伽| 精品嫩草影院久久| 欧美性xxxx图片| 天天色综合成人网| 在线电影国产精品| 午夜影院福利社| 亚洲午夜精品网| 欧美日韩一区三区四区| 91人妻一区二区三区| 亚洲精品中文字幕在线观看| 欧美黑人性猛交xxx| 成人精品国产一区二区4080| 中文字幕av一区二区三区免费看 | 国产成人av一区| 日本一区二区三区免费乱视频| 1024手机在线观看你懂的| 韩国女主播成人在线观看| 精品久久久久久久久久久久久久久久久 | 在线免费看视频| 国产麻豆成人精品| 亚洲国产精品v| 男人操女人的视频网站| 99久久免费国产| 伊人婷婷欧美激情| 欧美日韩一本到| 中文字幕乱码在线| 老司机一区二区| 久久久久99精品国产片| 中文字幕在线观看二区| 国产suv精品一区二区6| 亚洲欧洲精品天堂一级| 欧美亚洲国产bt| 国产精品福利导航| 麻豆精品国产传媒mv男同| 久久综合九色综合97_久久久| www久久久久久久| 国产91精品一区二区麻豆网站| 中文字幕亚洲电影| 欧美色区777第一页| 性欧美18—19sex性高清| 蜜桃视频在线观看一区| 久久精品亚洲国产奇米99| 久久成人小视频| 91丨九色丨尤物| 五月激情综合色| 精品99一区二区| 国产极品美女在线| 成年人看片网站| 蜜臀久久99精品久久久久宅男| 国产亚洲一区字幕| 日本韩国精品在线| xxxx黄色片| 国产精品一二三四| 综合久久给合久久狠狠狠97色| 欧美日本不卡视频| 69精品无码成人久久久久久| 成人黄色av电影| 午夜不卡在线视频| 久久亚洲精华国产精华液 | 亚洲一区二区三区三州| 日韩黄色免费电影| 国产精品私人影院| 欧美日韩精品系列| 调教驯服丰满美艳麻麻在线视频| 成人黄页在线观看| 亚洲成a人v欧美综合天堂下载| 2021中文字幕一区亚洲| 色婷婷综合久色| 波多野结衣 在线| eeuss鲁片一区二区三区| 日韩成人精品在线观看| 国产精品久久综合| 欧美一区二区三区视频| 日韩激情综合网| 内射中出日韩无国产剧情| 成人精品国产一区二区4080| 日本在线不卡视频| 亚洲欧洲三级电影| 久久综合九色综合97婷婷| 欧美三级日本三级少妇99| 岛国片在线免费观看| 奇米777第四色|