Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ตรวจสอบกับข้อยกเว้นที่ไม่ได้ตรวจสอบใน C #


คุณสามารถรันคำสั่งในภาษา C# ในบริบทที่เลือกหรือไม่เลือกได้

ในการตรวจสอบ ข้อยกเว้นจะเพิ่มขึ้นตามเลขคณิตล้น ในขณะที่ในบริบทที่ไม่ได้ตรวจสอบ ส่วนเกินเลขคณิตจะถูกละเว้น

ตรวจสอบข้อยกเว้นแล้ว

ใช้คีย์เวิร์ดที่ตรวจสอบเพื่อเปิดใช้งานการตรวจสอบโอเวอร์โฟลว์อย่างชัดเจนสำหรับการดำเนินการทางคณิตศาสตร์และการแปลงประเภทอินทิกรัล สำหรับสิ่งนี้ เพียงแค่ตั้งค่าคำหลักที่เลือก

การตรวจสอบโอเวอร์โฟลว์สามารถเปิดใช้งานได้ด้วยตัวเลือกคอมไพเลอร์ การกำหนดค่าสภาพแวดล้อม หรือการใช้คีย์เวิร์ดที่ตรวจสอบ

res = checked(val + 10);

สมมติว่าค่าของ val คือ 2147483647 นั่นคือค่าสูงสุดของประเภท int ด้านบนจะทำให้เกิดข้อผิดพลาดเนื่องจากมีการตรวจสอบ ซึ่งช่วยให้สามารถตรวจสอบโอเวอร์โฟลว์ขณะใช้งานจริงได้

ยกเลิกการเลือกข้อยกเว้น

ใช้คีย์เวิร์ดที่ไม่ได้เลือกเพื่อป้องกันการตรวจสอบโอเวอร์โฟลว์สำหรับการดำเนินการทางคณิตศาสตร์แบบอินทิกรัลและการแปลง สำหรับสิ่งนี้ เพียงแค่ตั้งค่าคำหลักที่ไม่ได้เลือก

ที่นี่จะละเว้นการล้นเลขคณิต ใช้เพื่อป้องกันการตรวจสอบล้น

res =unchecked(val + 10);

สมมติว่าค่าของ val คือ 2147483647 ข้างต้นจะไม่เกิดข้อผิดพลาดเนื่องจากการป้องกันการตรวจสอบโอเวอร์โฟลว์โดยใช้คีย์เวิร์ดที่ไม่ได้ตรวจสอบ