ماذا يطبع البرنامج التالي؟
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 يلتقط حالة panic2. - نداء
recoverفي السطر 7 يلتقط حالة panic1.
يُرجى قراءة شرح آلية panic/recover بالتفصيل للتفاصيل.