NZEC เป็นรหัสทางออกที่ไม่เป็นศูนย์
รหัสออกคือรหัส (หมายเลข) ที่ส่งคืนโดยการเรียกใช้โปรแกรมไปยังระบบปฏิบัติการเมื่อมีการยุติสำเร็จ (รหัสออก 0) หรือการยกเลิกล้มเหลวเนื่องจากข้อผิดพลาด (รหัสทางออกที่ไม่ใช่ศูนย์)
เนื่องจากภาษาโปรแกรม python หรือ Java รองรับการจัดการข้อยกเว้น เราจึงสามารถใช้การจัดการข้อยกเว้นโดยใช้บล็อก try-catch เพื่อตรวจจับข้อผิดพลาดนี้
ข้อผิดพลาด NZEC เป็นข้อผิดพลาดรันไทม์และเกิดขึ้นส่วนใหญ่เมื่อมีการเข้าถึงดัชนีอาร์เรย์เชิงลบหรือโปรแกรมที่เราเขียนใช้พื้นที่หน่วยความจำมากกว่าหน่วยความจำที่จัดสรรเพื่อให้โปรแกรมของเราทำงาน
ในคลาส python Exception เป็นซูเปอร์คลาสของข้อผิดพลาดและข้อยกเว้นทั้งหมด
เราสามารถใช้ตัวอย่างโค้ดด้านล่างได้
try: #Code that may throw an error except Exception, e: pass
ตัวอย่างที่ 1
ผิดทาง -
x,y = map(int, input())
วิธีที่ถูกต้อง -
x,y = map(int, input().split())
เพื่อคั่นอินพุตด้วยช่องว่าง:
สาเหตุที่เป็นไปได้ของการได้รับข้อผิดพลาด NZEC:
-
Infinite Recursion – หรือถ้าหน่วยความจำสแต็กของคุณหมด
-
ตรวจสอบให้แน่ใจว่าอินพุตและเอาต์พุตของคุณทั้งคู่เหมือนกันทุกประการกับกรณีทดสอบ ขอแนะนำให้ทดสอบโปรแกรมของคุณโดยใช้รหัสคอมพิวเตอร์ที่ตรงกับเอาต์พุตของคุณกับเอาต์พุตที่ระบุทุกประการ
-
สาเหตุทั่วไปอีกประการที่ทำให้เกิดข้อผิดพลาดนี้คือเมื่อคุณทำผิดพลาดในการเขียนโปรแกรมขั้นพื้นฐาน โดยหารด้วย 0
-
ตรวจสอบค่าของตัวแปรของคุณ พวกมันอาจเสี่ยงต่อการไหลของจำนวนเต็ม
-
พยายามคำนวณแฟคทอเรียลที่สูงกว่า 20 โดยตรง หากคุณคือ ให้หาวิธีอื่นในการดำเนินการนั้น
โดยทั่วไปแพลตฟอร์มการเขียนโปรแกรมที่แข่งขันกันอย่าง codechef จะไม่ให้รหัสข้อผิดพลาด ดังนั้นคุณต้องแก้ไขจุดบกพร่องของรหัสด้วยตนเอง ตรวจสอบเคสขอบ (เคสมุม) ตรวจสอบว่าคุณไม่ได้ทำผิดพลาดตามที่กล่าวข้างต้น
ตัวอย่างที่ 2
วิธีที่ไม่ดี:
for i in range(0,n): x=int(input()) arr.append(x)
วิธีที่ถูกต้อง:
arr = [int(k) for k in input().split()]
หรือ
arr = list(map(int, input().split()))