在Go 中處理自訂函數異常有3 種方法:使用panic 內建函數(語法見文章)實戰案例:define divide 函數,當除數為0 時Panic優點:方便、可自訂錯誤訊息、可在不同函數層級處理錯誤缺點:破壞程式流程、偵錯困難
在Go 中處理自訂函數異常有多種方法。其中一種方法是使用 panic
內建函數。 panic
會將程式控制權傳遞給 recover
函數,從而允許您處理異常並安全地恢復程式執行。
package main import "fmt" func main() { f := func() { panic("custom error") } defer func() { if r := recover(); r != nil { fmt.Println("Recovered from panic:", r) } }() f() }
注意:defer
語句必須放置在panic
語句之前,以便在發生panic
時被呼叫。
我們定義了一個名為 divide
的自訂函數,它將兩個數字相除。如果除數為 0,函數會觸發例外:
package main import "fmt" func main() { divide := func(numerator, denominator int) float64 { if denominator == 0 { // 触发错误 panic("不能除以 0") } return float64(numerator) / float64(denominator) } defer func() { if r := recover(); r != nil { fmt.Println("错误:", r) } }() result := divide(10, 2) fmt.Println(result) // 输出:5 result = divide(10, 0) // 触发错误 }
輸出:
5 错误: 不能除以 0
以上是golang自訂函數實作中的異常處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!