這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
在golang中對錯誤的處理,我這裡是自己練習的總結。
1、將錯誤資訊記錄到日誌裡面
2、panic,然後利用recover函數進行異常捕獲。(我這裡僅僅是做了一個簡單的例子,用來記錄這個用法)
function A調用function B ,這裡可以在 function A中使用recover也可以在function B中使用
*********************將日誌資訊儲存到日誌的代碼****************************
//向登入日誌裡面寫資料
//filename:為要儲存日誌的檔案名稱
//content:為要向日誌添加的內容
funcWrite_user_Info(filename,contentstring) {
file,err := os.OpenFile(filename,os.O_APPEND|os.O_RDWR|os.O_CREATE,0666)
iferr != nil {
log.Println("開啟檔案失敗.....",err)
return
}
deferfile.Close()
usr_time := time.Now().Format("2006-01-02 15:04:05")
content = fmt.Sprint(usr_time," ",content,"\r\n")
_,err = file.WriteString(content)
iferr != nil {
log.Println("向日誌中寫資料失敗.......",err)
return
}
}
*********************利用panic和recover函數****************************
funcTest_painc(T *testing.T) {
log.Println(getInt())
}
funcgetInt()int{
defer func()int{
iferr :=recover();err != nil {
log.Println(err)
}
log.Println("recover........continue")
return3
}()
log.Println("begin...........begin")
panic("hello panic")
}