Cover image

Go EP.12 Recover ในภาษา Go

1 Nov 2021

Share to:

สวัสดีครับ ในบทความนี้ก็เป็น EP.12 แล้วนะครับ โดยเนื้อหาจะเป็นเรื่องเกี่ยวกับ Recover ในภาษา Go ซึ่งจะเป็นเนื้อหาที่ต่อเนื่องมาจาก Go EP.11 Panic ในภาษา Go ครับ

สําหรับท่านใดที่ยังไม่ได้อ่าน EP.11 ท่านสามารถกลับไปอ่านก่อนได้นะครับที่นี่ Go EP.11 Panic ในภาษา Go

มาเริ่มเรียนรู้ไปด้วยกันตามหัวข้อด้านล่างเลยครับ

Recover ในภาษา Go คืออะไร

Recover ในภาษา Go เป็นคําสั่งที่ทํางานร่วมกันกับ Panic คือ Recover จะสามารถดักจับ “PANICKING STATE” ได้ครับ หมายความว่าถ้ามีการเกิด Panic ขึ้นเราสามารถใช้ Recover มาดักก่อนที่จะเกิด Runtime error ได้

ลองดูตามตัวอย่างนี้ครับ

package main

import (
	"fmt"
	"io/ioutil"
)

func main() {
	defer panicHandler()

	b, err := ioutil.ReadFile("myfile.json")

	if err != nil {
		panic("readFileError")
	}

	fmt.Printf("%v", b)
}

func panicHandler() {
	r := recover()
	if r != nil {
		fmt.Printf("message from panic: %s", r)
	}
}

// Output:
// message from panic: readFileError

จาก Code ด้านบนจะเห็นว่าเราใช้ Recover ไว้ใน Defer เนื่องจาก Defer จะทํางานทุกครั้งไม่ว่า Function นั้นๆจะจบแบบไหนก็ตาม

Recover จะเอาค่าที่เรา panic ไว้ออกมา และทําการยกเลิก Runtime error ทําให้เราได้ Output เป็นแบบนี้ครับ

recover-go

มาถึงจุดนี้เราก็ได้เรียนรู้กันไปแล้วว่า Recover คืออะไร และนําไปใช้งานอย่างไร

เนื้อหาในบทความนี้ก็มีเพียงเท่านี้ครับ แล้วพบกันใหม่ในบทความหน้านะครับ ของคุณครับ

Suggestion blogs

Vue.js เริ่มต้น ตอน1 (สร้าง Project)

ในยุคนี้การทําเว็บส่วนใหญ่จะเน้นไปทางการทำ Web ที่เป็น Single Page Application จึงมี Framework ที่มาช่วยในการทําเว็บแบบ Single Page Application ที่จะช่วยให้เราสร้างเว็บได้ง่ายขึ้น Vue.js ก็เป็น Framework ตัวนึงที่นิยมใช้กัน ซึ่งในบทความนี้เราจะมาเรียนรู้วิธีการใช้งาน Vue.js เบื้องต้น

ซีเนอร์ไดโอด (ZENER DIODE)

ซีเนอร์ไดโอด (ZENER DIODE)ซีเนอรร์ไดโอด เป็นไดโอดชนิดหนึ่งที่มีโครงสร้างเหมือนไอโอด คือมีสารกึ่งตัวนําชนิด P และ N มีขาสองขาเช่นเดียวกัน A และ K ความแตกต่างของ ซีเนอร์ไอโอด กับ ไดโอดธรรมดาคือ กระบวนการผลิตซีเนอร์ไอโอด จะเติมสารเจือปนลงไปในธาตุซิลิกอนมีจำนวนน้อยและจำนวนมากกว่าปรกติ พร้อมกับขบวนการผลิตเฉพาะ จึงได้ซีเนอร์ไดโอดขึ้นมาใช้งาน

Zero-Day คืออะไร

สวัสดีครับ ในบทความนี้เราจะมาทําความรู้จักกับคําว่า Zero-Day กันครับว่าคืออะไร มาเริ่มกันเลยครับ


Copyright © 2019 - 2024 thiti.dev |  v1.39.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Youtube channel   Telegram   Email contact   วงแหวนเว็บ