ก่อนอื่นเมื่อใดก็ตามที่คุณมีคำถาม "วิธีใช้ในทางปฏิบัติ" วิธีที่ดีในการเริ่มต้นคือค้นหาซอร์สโค้ด Go (หรือฐานรหัส Go ที่ใหญ่พอจริงๆ) และเอกสารแพคเกจเพื่อหาคำตอบ
ตอนนี้os.Exit
และpanic
ค่อนข้างแตกต่างกัน panic
ใช้เมื่อโปรแกรมหรือส่วนของโปรแกรมถึงสถานะที่ไม่สามารถกู้คืนได้
เมื่อpanic
ถูกเรียกรวมทั้งโดยปริยายสำหรับข้อผิดพลาดรันไทม์เช่นการจัดทำดัชนีสไลซ์นอกขอบเขตหรือการยืนยันประเภทล้มเหลวมันจะหยุดการทำงานของฟังก์ชันปัจจุบันทันทีและเริ่มคลายสแต็กของ goroutine โดยเรียกใช้ฟังก์ชันรอการตัดบัญชีไปพร้อมกัน หากการคลี่คลายไปถึงด้านบนสุดของสแต็กของ goroutine โปรแกรมจะตาย
os.Exit
ใช้เมื่อคุณต้องการยกเลิกโปรแกรมทันทีโดยไม่มีความเป็นไปได้ในการกู้คืนหรือเรียกใช้คำสั่งล้างข้อมูลที่รอการตัดบัญชีและส่งคืนรหัสข้อผิดพลาด (ที่โปรแกรมอื่นสามารถใช้เพื่อรายงานสิ่งที่เกิดขึ้น) สิ่งนี้มีประโยชน์ในการทดสอบเมื่อคุณรู้แล้วว่าหลังจากการทดสอบครั้งนี้ล้มเหลวการทดสอบอื่น ๆ ก็จะล้มเหลวเช่นกันดังนั้นคุณอาจออกตอนนี้ก็ได้เช่นกัน นอกจากนี้ยังสามารถใช้เมื่อโปรแกรมของคุณทำทุกอย่างที่จำเป็นต้องทำและตอนนี้จำเป็นต้องออกเช่นหลังจากพิมพ์ข้อความช่วยเหลือ
เวลาส่วนใหญ่คุณจะไม่ใช้panic
(คุณควรส่งคืนerror
แทน) และคุณแทบไม่จำเป็นต้องใช้os.Exit
นอกบางกรณีในการทดสอบและการยุติโปรแกรมอย่างรวดเร็ว
panic
ถูกใช้เพื่อออกจากข้อผิดพลาดเนื่องจากเข้าใจง่ายและกำจัดการนำเข้าแพ็คเกจอื่น ๆ นี่ไม่ได้หมายความว่ามันดีหรือเป็นสำนวน! . เป็นเพียงอุปกรณ์ประหยัดพื้นที่สำหรับโค้ดตัวอย่าง สำรอง IRLpanic
สำหรับมากสถานการณ์พิเศษ