ฉันตระหนักถึงหลายเกมที่เขียนด้วย C ++ แต่ไม่ได้ใช้ข้อยกเว้น เนื่องจากการจัดการกับความล้มเหลวในการจัดสรรหน่วยความจำใน C ++ นั้นโดยทั่วไปถูกสร้างขึ้นโดยมีstd::bad_allocข้อยกเว้นเกมเหล่านี้จะจัดการกับความล้มเหลวได้อย่างไร?
พวกเขาเพียงแค่ผิดพลาดหรือมีวิธีการจัดการและกู้คืนจากข้อผิดพลาดออกจำ?
std::terminateและนั่นคือมัน แต่ภายใต้ข้อ จำกัด เดียวกันการจัดสรรสามารถส่งคืนพอยน์เตอร์พอยน์เตอร์แทนการโยนข้อยกเว้นและผลลัพธ์นั้นสามารถตรวจสอบและจัดการแยกกันได้
ClassName variableName = new(nothrow) ClassName();( แทนที่ชื่อคลาสชื่อตัวแปร ฯลฯ ) จากนั้นหากการจัดสรรล้มเหลวคุณสามารถตรวจสอบได้โดยบอกว่าif(!variableName)อนุญาตให้จัดการข้อผิดพลาดได้โดยไม่ต้องใช้บล็อกข้อยกเว้น try-catch ในทำนองเดียวกันหากหน่วยความจำถูกจัดสรรโดยใช้ฟังก์ชั่นเช่นmalloc(), calloc()ฯลฯ จะสามารถตรวจพบความล้มเหลวในการจัดสรรโดยใช้if(!variableName)วิธีการเดียวกันโดยไม่ต้องลองจับ สำหรับวิธีที่เกมจัดการกับข้อผิดพลาดเหล่านี้ในจุดนั้นมันขึ้นอยู่กับเกมที่จะตัดสินใจว่ามันจะล้มเหลวหรือไม่