اختبارات

panic/recover 1

ماذا يطبع البرنامج التالي؟


package main

import "fmt"

func main() {
	defer func() {
		fmt.Print(recover())
	}()
	defer func() {
		defer fmt.Print(recover())
		defer panic(1)
		recover()
	}()
	defer recover()
	panic(2)
}

الخيارات:

  • 21
  • 1
  • 2
  • 1

الإجابة: 21

شغِّله على Go play.

النقاط الأساسية:

  • نداءا recover في السطرين 14 و12 بلا تأثير.
  • نداء recover في السطر 10 يلتقط حالة panic 2.
  • نداء recover في السطر 7 يلتقط حالة panic 1.

يُرجى قراءة شرح آلية panic/recover بالتفصيل للتفاصيل.