NZEC হল নন-জিরো এক্সিট কোড (Non-Zero Exit Code)।
এক্সিট কোড হল রানিং প্রোগ্রাম অপারেটিং সিস্টেমে রিটার্ন করে এমন কোড (নম্বর), যা সফলভাবে টার্মিনেট হলে (Exit code 0) বা ত্রুটির কারণে ব্যর্থভাবে টার্মিনেট হলে (Non zero exit code) দেয়।
পাইথন বা জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজ এক্সেপশন হ্যান্ডলিং সমর্থন করে, তাই আমরা try-catch ব্লক ব্যবহার করে এই এরর ক্যাচ করতে পারি।
NZEC এরর হল একটি রানটাইম এরর এবং এটি যেন যেন হয় যখন নেগেটিভ অ্যারে ইন্ডেক্স অ্যাক্সেস করা হয় বা প্রোগ্রাম আলোকিত মেমোরির চেয়ে বেশি মেমোরি ব্যবহার করে।
পাইথনে Exception ক্লাস সকল এরর ও এক্সেপশনের সুপার ক্লাস।
নিচের কোড স্যাম্পল ব্যবহার করা যেতে পারে:
try:
# Code that may throw an error
except Exception, e:
pass
উদাহরণ ১
ভুল পদ্ধতি:
x, y = map(int, input())
সঠিক পদ্ধতি:
x, y = map(int, input().split())
ইনপুট হোয়াইট স্পেস দিয়ে ডিলিমিট করার জন্য।
NZEC এরর পাওয়ার সম্ভাব্য কারণ:
- ইনফাইনাইট রিকারশন (Infinite Recursion) বা স্ট্যাক মেমোরি শেষ হয়ে যাওয়া।
- ইনপুট ও আউটপুট টেস্ট কেসের সাথে একদম সেমি হয়েছে কিনা নিশ্চিত করুন। আউটপুট স্পেসিফাইড আউটপুটের সাথে এক্সাক্টলি ম্যাচ করে কিনা চেক করার জন্য কম্পিউটার কোড দিয়ে টেস্ট করা উপযুক্ত।
- বেসিক প্রোগ্রামিং ভুল যেমন ০ দিয়ে ভাগ করা।
- ভেরিয়েবলের মান চেক করুন, সেগুলো ইন্টিজার ওভারফ্লোর জন্য আক্রান্ত হতে পারে।
- সরাসরি ২০-এর উপরে ফ্যাক্টোরিয়াল কম্পিউট করার চেষ্টা করা - অন্য উপায় খুঁজুন।
সাধারণত কোম্পিটিটিভ প্রোগ্রামিং প্ল্যাটফর্ম যেমন CodeChef এরর কোড দেয় না, তাই নিজে কোড ডিবাগ করতে হয়। এজ কেস (কর্নার কেস) চেক করুন, উপরের ভুলগুলো না করছেন কিনা নিশ্চিত হন।
উদাহরণ ২
খারাপ পদ্ধতি:
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()))