Go語言之錯誤處理
錯誤處理機制
當程式發生錯誤,程式就會崩潰,所以,引進錯誤處理機制,當發生錯誤後,可以捕獲錯誤,並進行處理,保證程式正常執行,並返回給管理員錯誤的資訊提示。
異常處理
Go中丟擲一個panic的異常,然後在關鍵字defer中通過recover()函式捕獲這個異常,最後正常處理。
defer語句的作用是不管程式是否出現異常,均在函式退出時自動執行相關程式碼。
程式案例
package main
import (
"fmt"
)
func test() {
// 使用defer + recover 來捕獲異常
defer func() {
// recover()內建函式,可以捕獲異常
err := recover()
// 說明捕獲異常的錯誤
if err != nil {
fmt.Println("err=", err)
}
}
num1 := 10
num2 := 0
res := num1 / num2
fmt.Println("res=", res)
}
func main() {
test()
}
自定義錯誤
error型別是go語言的一種內建型別,是一個介面。
errors.New(“錯誤說明”),會返回一個error型別的值,表示一個錯誤
panic()內建函式,接收一個interface{}型別的值 作為引數,可接收error型別的變數,輸出錯誤資訊,並退出程式
程式案例
package main
import "fmt"
func readConf(name string) error {
if name == "config.ini" {
return nil
} else {
return errors.New("讀取檔案錯誤")
}
}
func main() {
err := readConf("config1.ini")
if err != nil {
panic(err)
} else {
fmt.Println("繼續執行")
}
fmt.Println("main函式繼續執行")
}
相關文章
- Go語言基礎-錯誤處理Go
- Go語言錯誤處理機制Go
- Go 錯誤處理Go
- Go 語言的錯誤訊息處理Go
- Go語言之Goroutine與通道、異常處理Go
- go的錯誤處理Go
- go 錯誤處理設計思考Go
- 從錯誤處理看 Rust 的語言和 Go 語言的設計RustGo
- Go語言(golang)的錯誤(error)處理的推薦方案GolangError
- [譯] Go 1.13 errors 包錯誤處理GoError
- Go 的錯誤處理策略 筆記Go筆記
- 開心檔之Go 錯誤處理Go
- Go 併發 2.2:錯誤處理模式Go模式
- Go 語言中遇到 _func not exported by package_ 錯誤,應該如何處理?GoExportPackage
- C語言之字串處理函式C語言字串函式
- 二、GO 程式設計模式:錯誤處理Go程式設計設計模式
- Go語言之methodGo
- Go語言之介面Go
- Go語言中用於錯誤處理的Defer、Panic和Recover - Sachin KarveGo
- 錯誤處理
- 兄弟連go教程(15)函式 - 錯誤處理Go函式
- 優化 Go 錯誤處理,魔改 Go recover 靠譜嗎?優化Go
- Go語言之ContextGoContext
- Go語言之 Struct TagGoStruct
- go語言之反射-------ReflectionGo反射
- 如何在 Go 中優雅的處理和返回錯誤(1)——函式內部的錯誤處理Go函式
- Go 為什麼不像 Rust 用 ?!做錯誤處理?GoRust
- 寫給go開發者的gRPC教程-錯誤處理GoRPC
- iOS開發系列--C語言之預處理iOSC語言
- 清華尹成帶你實戰GO案例(24)Go 錯誤處理Go
- PHP 錯誤處理PHP
- php錯誤處理PHP
- Swift錯誤處理Swift
- Zabbix錯誤處理
- mysqldump錯誤處理MySql
- 深度解密 Go 語言之 channel解密Go
- 深度解密Go語言之 map解密Go
- 深度解密Go語言之Slice解密Go