iT邦幫忙

DAY 3
0

蠻可愛的 Golang系列 第 3

處理除以零錯誤的方法

昨天介紹了月光刑警還有他的助手美茄子刑警.
其實是利用defer 跟 recover()啦!
今天來看看在Golang中,怎樣處理除以零.
這是很有名的錯誤.
讓我們來看看在Golang中怎樣優雅的處理.

// hello52
package main

import (
	"fmt"
)

func 出包() {
	a := 5678
	b := 0
	n := a / b     // 這裡會出包
	fmt.Println(n) // 這根本沒機會執行
}

func 測試() {
	// 先把救兵安排好
	defer func() {
		if e := recover(); e != nil {
			fmt.Println("月亮的使者‧月光刑警!還有助手美茄子刑警,一同登場!")
			fmt.Printf("出包情況是: %s\n", e)
		}
	}()

	// 呼叫會出包的
	出包()
	fmt.Println("出包的函式若能正常執行不出包,你就會看到我了!")
}

func main() {
	fmt.Println("主函式開始")
	測試()
	fmt.Println("主函式結束")
}

執行結果:

./hello52 
主函式開始
月亮的使者‧月光刑警!還有助手美茄子刑警,一同登場!
出包情況是: runtime error: integer divide by zero
主函式結束

上一篇
空中的事情交給我們解決!
下一篇
玉面飛鷹決戰油達大師
系列文
蠻可愛的 Golang30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言