উইন্ডোজে রানটাইম এরর অপারেটিং সিস্টেমের yht পুরানো। অ্যাপ ক্র্যাশ হলে এটি একটি সাধারণ এরর মেসেজ, কিন্তু রানটাইম এরর আসলে কী, এবং আপনি এর সম্পর্কে কী করতে পারেন?
সফ্টওয়্যার ডেভেলপমেন্ট জটিল, এবং আধুনিক অ্যাপ্লিকেশনগুলো এক্সপেক্টেডভাবে কাজ করার জন্য সোফিস্টিকেটেড লাইব্রেরি এবং সাপোর্টিং ডেটার উপর নির্ভর করে। এই গাইড আপনাকে বুঝতে সাহায্য করবে কেন রানটাইম এরর হয় এবং কিভাবে এগুলো কমিয়ে আনা যায়।
রানটাইম এরর কী?
"রানটাইম এরর" বলতে একটি প্রোগ্রাম এক্সিকিউট হওয়ার সময় যেকোনো অ্যাপ্লিকেশন এরর বোঝানো হয়। অন্য কথায়, এটি একটি রানিং প্রোগ্রামে ঘটে। এটি কম্পাইলেশন সময় হয় এমন এররের বিপরীত। কম্পাইলেশন হলো প্রোগ্রামিং কোড ( "সোর্স" কোড) বাইনারি কোডে কনভার্ট করার প্রক্রিয়া যা অপারেটিং সিস্টেম এক্সিকিউট করতে পারে। যদি সোর্স কোডের যেকোনো অংশ অবৈধ হয়, তবে কম্পাইলার থেমে যাবে এবং একটি এরর মেসেজ দেবে।
রানটাইম এরর তখন ঘটে যখন কম্পাইলড এক্সিকিউটেবল একটি ऐसी পরিস্থিতি সম্মুখীন হয় যেখানে এটা জানে না পরবর্তীতে কী করবে বা কোইচিৎ তার স্বাভাবিক অপারেশন বাধা পায়। এই বিন্দুতে, এটি টoweল ফেলে এবং একটি রানটাইম এরর দেয়।
রানটাইম এররের বিভিন্ন ধরন
যেহেতু রানটাইম এরর খুব ব্রডলি ডিফাইন করা হয়েছে, তাই ট্রাবলশুটিং করা ট্রিকি হতে পারে। আপনি কী কী কমন এরর টাইপ সম্মুখীন হতে পারেন সেটা বুঝলে সাহায্য मिलে। নিচের পাঁচটি এরর টাইপ এক্সহাস্টিভ না হলেও সবচেয়ে সম্ভাব্য কারণগুলো।
লজিক এরর (Logic Errors)
লজিক এরর তখন ঘটে যখন কম্পিউটারرفية কিছু সম্মুখীন হয় যা "কম্পিউট" করা যায় না। এটি প্রোগ্রামের কোড দ্বারা জেনারেটেড একটি আউটপুট যা অননাকাঙ্ক্ষিত ফলাফল দেয়, কখনও কখনও অসম্ভব ফলাফল, কারণ কোডের লজিক ট্র্যাক করে না বা প্রোগ্রামাররা একটি নির্দিষ্ট শর্ত বা ইনপুট সেট অ্যান্টিসিপেট করেননি।
মেমরি লিক (Memory Leaks)
মেমরি লিক তখন হয় যখন একটি প্রোগ্রাম রিকোয়েস্ট করা মেমরি তার আর প্রয়োজন না থাকলে ফেরত দেয় না। সময়ের সাথে সাথে মেমরি লিক অন্য প্রোগ্রামের জন্য কম וקম রিসোর্স ছেড়ে দেয়, যার ফলে পারফরম্যান্স ডিগ্রেড হয় এবং শেষে রানটাইম এরর হয়। এটি একটি ইন্টারেস্টিং একটি কারণ সেটি রানটাইম এরর রিপোর্ট করার সফ্টওয়্যার সাধারণত মেমরি লিকവালা সফ্টওয়্যার নয়। সেটি শুধু লিকের ভিক্টিম।
শূন্য দিয়ে ভাগ (Dividing by Zero)
শূন্য দিয়ে ভাগ করা অসম্ভব, তাই আপনার কম্পিউটার চেষ্টা করলে এটি একটি ব্ল্যাক হোলে ইম্প্লোড হবে। মজাক করছি! এটি "cannot divide by zero" রানটাইম এরর দিয়ে প্রোগ্রামটি ক্র্যাশ করাবে।
অনডিফাইনড অবজেক্ট (Undefined Objects)
এই এরর সাধারণত জাভা এবং জাভাস্ক্রিপ্টের সাথে জুড়ে থাকে, যেখানে ভেরিয়েবলগুলো ভ্যালু অ্যাসাইন করা নেই বা ডিক্লেয়ার করা নেই। অন্য কথায়, একটি ভেরিয়েবলে কোনো ডেটা নেই, বা কোড একটি অস্তিত্বহীন ভেরিয়েবলে রেফার করে। মূলত, প্রোগ্রামার কিছু ভুল করেছেন।
IO এরর (IO Errors)
IO বা Input/Output এরর তখন ঘটে যখন একটি প্রোগ্রাম একটি স্টোরেজ ডিভাইস থেকে ডেটা পড়তে বা লিখতে চেষ্টা করে এবং ব্যর্থ হয়। এর কারণ একাধিক হতে পারে, ডিসকানেক্টেড ড্রাইভ থেকে ফল্টি হার্ড ড্রাইভ বা ইউএসবি হার্ডওয়্যার পর্যন্ত। স্ক্র্যাচড অপ্টিক্যাল ডিস্কও IO এররের একটি সাধারণ কারণ।
আপনি একটি রানটাইম এরর সম্মুখীন हुएছেন, এবং এটি আপনাকে বিরক্ত করছে কারণ আপনি কাজ করার চেষ্টা করছেন। আমরা উপরে উল্লেখ করেছি যে রানটাইম এরর বিভিন্ন ধরনের হয়, এবং স্পেসিফিক এরর আপনাকে টাইপ বুঝতে সাহায্য করতে পারে, কিন্তু কিছু জেনারেল ফিক্স রয়েছে যা ডিটেইলস উপেক্ষা করে কাজ করতে পারে।
আপনার কম্পিউটার রিবুট করুন
কম্পিউটার রিবুট করলে মেমরি লিক ইস্যু বা অন্য যেকোনো টেম্পোরারি ডেটা ক্যাশ বা ওয়ার্কিং ডেটা ক্লিয়ার হতে পারে যা প্রোগ্রাম বন্ধ করতে পারে। যদি একটি ইস্যু রিবুটের পর চলে যায়, তবে কারণ ক্লিয়ার করতে সাহায্য করে না, কিন্তু মাঝেমধ্যে হয় এমন সমস্যার জন্য রিস্টার্ট দ্রুত একটি সমাধান।
অ্যাপ্লিকেশন আপডেট করুন
অধিকাংশ সময় সফ্টওয়্যারের বাগের ফলাফলে সফ্টওয়্যারে রানটাইম এরর হয়। একবার সফ্টওয়্যার ডেভেলপার এই বাগগুলো সম্পর্কে জানলে, তারা সাধারণত সমস্যাটি ফিক্স করে অ্যাপ্লিকেশনের জন্য একটি আপডেট রিলিজ করে। তাই আপনার সফ্টওয়্যারের জন্য আপডেট উপলব্ধ কিনা চেক করা আপনার প্রথম কাজের একটা।
হয়তো আরও গুরুত্বপূর্ণ, আপনি উইন্ডোজ রানটাইম এরর সম্মুখীন হলে, সেটি ডেভেলপারদের রিপোর্ট করুন। কখনও কখনও এরর মেসেজের পাশে রিপোর্টিং বাটন থাকে; অন্য সময় স্ক্রিনশট নিতে হয় বা এরর কোড লিখে রাখতে হয় এবং তারপর ইমেইল বা সোশ্যাল মিডিয়ায় যোগাযোগ করতে হয়। একটি নতুন বাগ রিপোর্ট করলে ফিক্স পাওয়া দ্রুত হয়।
উইন্ডোজ আপডেট করুন
রানটাইম এরর মাইক্রোসফট উইন্ডোজের বাগ বা অন্যান্য ইস্যুর ফলাফলও হতে পারে, যা সাধারণত উইন্ডোজ আপডেটে রেক্টিফাই হয়। ছোট ইস্যুগুলো সাধারণত "হটফিক্স"-এ অ্যাড্রেস করা হয় যা স্পেসifik অর্জেন্ট সমস্যা ফিক্স করার ছোট আপডেট।
বিকল্পভাবে, যদি একটি প্রোগ্রাম উইন্ডোজ আপডেটের পর থেকেই রানটাইম এরর দিতে শুরু করে, তবে আপনি লাস্ট আপডেট ডিলিট করতে চাইতে পারেন যতক্ষণ না ডেভেলপাররা তাদের সফ্টওয়্যার আপডেট করেন।
আপনার পুরনো ড্রাইভার আপডেট করুন
ড্রাইভার হলো সফ্টওয়্যার যা অপারেটিং সিস্টেমকে আপনার হার্ডওয়্যার কন্ট্রোল করতে দেয়—যেমন ডিসপ্লে অ্যাডাপ্টার (একা আপনার গ্রাফিক্স কার্ড)। নতুন সফ্টওয়্যার বা নতুন আপডেট করা সফ্টওয়্যার ড্রাইভারের লেটেস্ট ভার্সনে মাত্র উপলব্ধ ফিচারগুলোর উপর নির্ভর করতে পারে, তাই আপনার কম্পিউটার কম্পোনেন্টের ড্রাইভার আপডেট করলে হার্ডওয়্যার-রিলেটেড রানটাইম এরর ফিক্স হতে পারে।
অ্যাপ্লিকেশন রিইনস্টল বা রিপেয়ার করুন
রানটাইম এরর করপ্টেড অ্যাপ্লিকেশন ফাইল বা ডেটার ফলাফল হতে পারে। তাই প্রোগ্রাম এক্সিকিউটেবল যখন কাজ করার জন্য প্রয়োজনীয় ডেটা অ্যাক্সেস করার চেষ্টা করে, সেটি এরর সম্মুখীন হয় কারণ ডেটা ভুল বা মিসিং।
অ্যাপ্লিকেশন আনইনস্টল করে রিইনস্টল করলে, আপনি সেই করপ্ট ডেটাকে একটি ফ্রেশ কপি দিয়ে ওভাররাইট করতে পারেন। আপনাকে হয়তো অ্যাপ্লিকেশন আনইনস্টল করতে হবে না। অনেক অ্যাপ ইন্সটলার আবার চালালে বা কন্ট্রোল প্যানেলের Programs and Features থেকে আনইনস্টল করার চেষ্টা করলে "রিপেয়ার" বা "ভেরিফাই" অপশন দেয়।
সকল অন্যান্য অ্যাপ বন্ধ করুন
মেমরি লিক বা কোনো নির্দিষ্ট অ্যাপ উপলব্ধ মেমরির চেয়ে বেশি মেমরি চাওয়ার কারণে হয় এমন রানটাইম এরর গैर-এসেনশিয়াল ওপেন প্রোগ্রামগুলো বন্ধ করে কমিয়ে আনা যাবে। আপনি আপনার সওয়াপ ফাইলের সাইজও এডজাস্ট করতে পারেন, যাতে র্যামে ফিট না হওয়া অ্যাপগুলোর জন্য কিছু 여유 তৈরি হয়।
আপনি যদি নিশ্চিত হন যে রানটাইম এরর মেমরি ক্যাপাসিটির কারণে হচ্ছে মেমরি লিকের না, তবে আপনি আপনার কম্পিউটারের র্যামের পরিমাণ বাড়াতে পারেন যাতে সে হеви ওয়ার্কলোড হ্যান্ডল করতে পারে।
উইন্ডোজ সেফ মোডে চালান বা ক্লিন বুট করুন
আপনি যদি সন্দেহ করেন আপনি যে রানটাইম এরর এক্সপেরিয়েন্স করছেন সেটি ব্যাকগ্রাউন্ডে ড্রাইভার বা অন্যান্য সফ্টওয়্যার অ্যাপ্লিকেশনের ফলাফল, তবে সেফ মোড বা ক্লিন বুট ব্যবহার করে সেটি কনফার্ম করতে পারেন।
সেফ মোড উইন্ডোজের একটি স্পেশাল বুট মোড যা শুধু মিনিমাল ড্রাইভার এবং উইন্ডোজ সার্ভিস লোড করে। যদি সমস্যা সেফ মোডে চলে যায়, তবে আপনি যথার্থ ভাবতে পারেন ইস্যু হয় ড্রাইভার-রিলেটেড (আপডেট করুন) নাকি একটি উইন্ডোজ সার্ভিস। সেফ মোডে কিভাবে স্টার্টআপ করবেন সেটি দেখতে আমাদের গাইড রেফার করুন। যদি হেল্প করে, তবে MSConfig সার্ভিস ট্যাবে সার্ভিস ডিজেবল করে এক্সপেরিমেন্ট করতে পারেন।
এক ক্লিন বুট সেফ মোডের почти অপোজিট। মিনিমাল অপারেটিং সিস্টেম লোড করার বদলে, উইন্ডোজ সকল থার্ড-পার্টি স্টার্টআপ সফ্টওয়্যার ডিজেবল করে। যদি ক্লিন বুট রানটাইম এরর রেজল্ভ করে, তবে এর কারণ হয়তো একটি থার্ড-পার্টি অ্যাপ যা ডিজেবল, আপডেট, বা রিপ্লেস করতে হবে। ক্লিন বুট কিভাবে করবেন সেটি জানতে আমাদের গাইড দেখুন।
রানটাইম কম্পোনেন্ট আপডেট করুন
সফ্টওয়্যার প্রায়শই শেয়ার্ড সফ্টওয়্যার লাইব্রেরি এবং স্ট্যান্ডার্ড সফ্টওয়্যার রানটাইম কম্পোনেন্টের উপর নির্ভর করে। যদি এগুলো ইনস্টল না থাকে, করপ্টেড থাকে, বা ভুল ভার্সন থাকে তবে ইস্যু হয়। এমন রানটাইম কম্পোনেন্টের উদাহরণ হলো Microsoft Visual C++ রিডিস্ট্রিবিউটেবল প্যাকেজ।
আপনি মাইক্রোসফট ওয়েবসাইট থেকে প্রয়োজনীয় VC++ রিডিস্ট্রিবিউটেবল ডাউনলোড করতে পারেন, কিন্তু এটি সাধারণত সফ্টওয়্যারের সাথে থাকে যেটি এটিকে প্রয়োজন। তাই অ্যাপ রিইনস্টল বা রিপেয়ার করলেও Visual C++ রানটাইম লাইব্রেরি রিস্টোর হয়। এটি রানটাইম কম্পোনেন্ট প্রোবলেমের সবচেয়ে সহজ আইডেন্টিফিকেশন, কারণ রানটাইম এরর মেসেজ সাধারণত স্পেসিফাই করে যে এটি একটি "C++ runtime error."
করপ্ট ফাইল চেক করুন
ডেটা করপশন তখন হয় যেকোনো ফাইলকে বানাওয়া ১ এবং ০ ড্যামেজড বা ওভাররাইট হয় যেকোনো কারণে। সিস্টেম বা অ্যাপ্লিকেশন ফাইলে ড্যামেজ অপ্রত্যাশিত রানটাইম এরর লيده পারে।
আপনি উইন্ডোজ System File Checker (SFC) চালাতে পারেন সিস্টেম ফাইলে ড্যামেজ চেক ও রিপেয়ার করতে। অ্যাপ্লিকেশনের জন্য, অধিকাংশ সময় ইনস্টলার আপনাকে অ্যাপ আনইনস্টল না করেই প্রথমে চালালে "রিপেয়ার" অপশন দেয়। Steam-এর মতো সফ্টওয়্যার ক্লায়েন্টের সাথে, আপনি আপনার গেমগুলোতে "ভেরিফাই" অপশনও ব্যবহার করতে পারেন ফাইলগুলো ঠিক আছে কিনা চেক করতে।
ম্যালওয়্যার স্ক্যান করুন
অনেক ধরণের ম্যালওয়্যার রানিং কোডে নিজেদের ইনজেক্ট করে, ডেটা ফাইল করপ্ট করে, বা এক্সিকিউটেবল ফাইল অ্যাল্টার করে। এগুলো সব রানটাইম এরর লিড করতে পারে। ম্যালওয়্যার আপনার এরর করার কারণ কিনা রুল আউট করতে আপনার পছন্দের অ্যান্টিভাইরাস বা অ্যান্টি-ম্যালওয়্যার সফ্টওয়্যার ব্যবহার করে একটি স্ক্যান চালান।
মেমরি টেস্ট করুন
আপনার রানিং সফ্টওয়্যার সিপিইউ-তে প্রসেসিংয়ের জন্য যাওয়ার আগে, এটি আপনার র্যামে একদম রুকেছে। আপনার র্যাম ফল্টি হলে, এটি রানটাইম এরর সৃষ্টি করতে পারে যা ট্র্যাক করা কঠিন। একটি মেমরি টেস্ট চালান এবং নিশ্চিত হন আপনার মেমরি মডিউলে বিট ফ্লিপিং ইস্যু নেই!