ওয়েব স্কুল বিডি : সুপ্রিয় শিক্ষার্থী বন্ধুরা, শুভেচ্ছা নিয়ো। আমরা গত ক্লাসে রিকোয়ার ফাংশন নিয়ে আলোচনা করেছিলাম। আজ তোমাদের এরর হ্যান্ডলার নিয়ে আলোচনা করা হলো :
এরর হ্যান্ডলার :
এরর হ্যান্ডলিং বলতে মুলত কিভাবে এরর ব্রাউজারে দেখাবে, কোথায় এসব ঠিক করে দিতে হয়, কি কি এরর পিএইচপিতে আছে এগুলি বোঝায়। কোড ডিবাগিং এর সাথে এর নিবিড় সম্পর্ক। কোড ডিবাগিং হচ্ছে এরর এর সমাধান করা। এই টিউটোরিয়ালে আমরা দুটো নিয়েই আলোচনা করব, কিভাবে কোডের এরর দেখে কিংবা বিভিন্ন কৌশল ব্যবহার করে এরর বের করা যায় সাথে সাথে এররটিকে কিভাবে সমাধান (fix) করা যায়।
আপনি যত বড় প্রোগ্রামার হন, যত বছর আপনার কোডিং অভিজ্ঞতা হোক, যত মনোযোগ দিয়েই আপনি কোড করেন না কেন কোডে এরর/ভুল থাকবেই। তবে কোডে ভুল থাকা খারাপ কিছু নয়, পৃথিবীতে সব কোডারের ভুল হয়। এই ভুল ঠিক করা তথা কোড ডিবাগিং করতে না পারলে সমস্যা। পিএইচপিতে বিভিন্ন কৌশল, ফাংশন ইত্যাদি আছে যেসব দিয়ে আপনি কোডের ভুল বের করতে পারবেন। কিছু কৌশল এবং ফাংশন নিয়ে নিচে আলোচনা করা হল :
==> php.ini ফাইল : ব্রাউজারে যদি এরর দেখতে চান তাহলে php.ini ফাইলে display_errors on রাখতে হবে। এছাড়া এই ফাইলে ঠিক করে দেয়া যায় কোন্ ধরনের এরর দেখাবে আর কোন ধরনের দেখাবেনা। পিএইচপিতে ১৬ ধরনের এরর আছে, প্রত্যেকটি এরর/ভুলের জন্য একটা নাম্বার আছে তবে এই নাম্বার নিয়ে কাজ করা উচিৎ হবেনা কারন পিএইচপি ভার্সন পরিবর্তনের সাথে এই নাম্বারগুলির মধ্যে অনেক সময় কিছু পরিবর্তন হতে পারে তাই এগুলির নাম (constant name) নিয়ে কাজ করা উচিৎ।
E_ERROR : মারাত্নক (fatal error) রানটাইম (run time) ভুল/এরর। এই ধরনের এরর হলে কোড এক্সিকিউশন বন্ধ হয়ে যাবে। যেখানে এমন এরর হবে সেখানেই কাজ বন্ধ। রান টাইম এরর অর্থ প্রোগ্রাম/এপ্লিকেশন চলার সময় যে এররগুলি হয়, প্রোগ্রাম চলার শুরুতে, মাঝে বা যেকোন সময় এরর হোক না কেন এটা রানটাইম এরর। যেমন এমন একটি ফাইল খুলতে কোড লিখেছেন যেটার অস্তিত্ব নেই এরুপ যেকোন লজিকাল এরর।
E_WARNING : রানটাইম সতর্কতামুলক এরর তবে মারাত্নক নয়। কোড এক্সিকিউশন বন্ধ হয়না।
E_PARSE : কমপাইল-টাইম এরর। যেমন দ্বিতীয় বন্ধনী (curly braces) শুরু করেছেন কিন্তু শেষ করেননি এরুপ সিনট্যাক্স এরর।
E_NOTICE : রানটাইম এরর। কোড এক্সিকিউশন বন্ধ হবেনা।
E_CORE_ERROR : কোর পিএইচপি থেকে এই এরর তৈরী হয়। এটা মারাত্নক এরর E_ERROR এর মত। fatl error.
E_CORE_WARNING : E_WARNING এর মতই শুধু এটা কোর পিএইচপি থেকে তৈরী হয়।
E_COMPILE_ERROR : মারাত্নক এরর (fatal error)। জেন্ড স্ক্রিপ্টিং ইন্জিন থেকে এই এরর তৈরী হয়। E_ERROR এর মত।
E_COMPILE_WARNING : E_WARNING এর মতই তবে জেন্ড স্ক্রিপ্টিং ইন্জিন থেকে তৈরী হয়।
E_USER_ERROR : E_ERROR এর মত তবে ইউজার কতৃক এই এরর তৈরী হয়। trigger_error() ফাংশন ব্যবহার করে এই এরর তৈরী করা যায়। ইউজার অর্থ এখানে প্রোগ্রামার।
E_USER_WARNING : E_WARNING এর মত শুধু পার্থক্য হল প্রোগ্রামার কর্তৃক তৈরী করা হয়।
E_USER_NOTICE : E_NOTICE এর মত ইউজার কর্তৃক তৈরী।
E_STRICT : রানটাইম এরর। fatal error নয়। এই এররের দ্বারা মুলত একটা সাজেশন পাওয়া যায় ফলে কোড আরেকটু উন্নত হয়। (PHP 5 ভার্সনে এসেছে)
E_RECOVERABLE_ERROR : প্রায় E_ERROR এর কাছাকাছি।
E_DEPRECATED : এটা একটা রানটাইম নোটিশ। পিএইচপির ভবিষ্যতের ভার্সনে কাজ করবেনা এমন কোড লিখলে এরুপ মেসেজ দিবে।
E_USER_DEPRECATED : E_DEPRECATED এর মত তবে ইউজার তথা প্রোগ্রামার কর্তৃক তৈরী trigger_error() দিয়ে।
E_ALL: E_STRICT বাদে সব এরর এবং সতর্কতা (warning)।
~ এই চিহ্নের অর্থ হল মাইনাসের মত অর্থ্যাৎ ডিফল্ট মানটির দ্বারা সব ধরনের এরর দেখাবে শুধু E_NOTICE, E_STRICT এবং E_DEPRECATED এর এররগুলি ছাড়া। যদি সব ধরনের এরর দেখতে চান তাহলে error_reporting এর মান E_ALL (error_reporting = E_ALL এভাবে) দিয়ে রাখবেন।
ট্রিকস: ডেভেলপমেন্ট সার্ভারে E_ALL দিয়ে রাখতে পারেন ফলে সব এরর দেখাবে সুতরাং কোড অনেক উন্নত হবে। আর প্রোডাকশন সার্ভারে E_ALL & ~E_NOTICE & ~E_STRICT এটা দিতে পারেন।
==> die() ফাংশন : এটা আসলে কোন ফাংশন না বরং এগুলিকে বলা হয় ল্যাংগুয়েজ কনস্ট্রাক্ট। die() হবহু exit() ফাংশনের মত। এই ফাংশনের কাজ হচ্ছে একটা মেসেজ দিয়ে কোড এক্সিকিউশন বন্ধ করে দিবে।
যে path দিবেন সেখানে যদি ফাইলটি না পায় তাহলে মেসেজটি যেটা die() এর ভিতরে দেয়া আছে সেটা দেখিয়ে কোড এই পর্যন্তই্ থেমে যাবে। এই die() এর পর যদি হাজারো কোড থাকে তবে সেই কোড এক্সিকিউট হবেনা (যখন এরর হবে)। ডেভেলপমেন্ট সার্ভারে লোকালি ব্যবহার করুন, কখনই প্রোডাকশন সার্ভারে এটা দিয়ে রাখবেন না। যদি স্ক্রিপ্টে die() থাকে আর হুট করে কোন এরর হয় পুরো সাইট বন্ধ হয়ে থাকবে, ইউজার টাসকি খেয়ে বসে থাকবে কারন সাইট আর চলবেনা।
==> @ বা এরর সাপরেশন অপারেটর (error supression operator) ব্যবহার করা :
এটা বেশ উপকারী একটা অপারেটর। কোন এক্সপ্রেশন/ফাংশনের সামনে দিলে সেখানে যদি কোন এরর হয় তবুও এররটি দেখাবেনা।
অনলাইন এ ক্লাস করুন একদম ফ্রী. …
প্রতিদিন রাত ৯টা থেকে ১০.৩০টা পর্যন্ত
Skype id - wschoolbd
বি.দ্র.: ওয়েব স্কুল বিডি থেকে বিদেশে পড়াশোনা সংক্রান্ত বিভিন্ন পরামর্শ প্রদান করার উদ্যোগ নেওয়া হয়েছে। আমাদের সাথে যোগাযোগ – ০১৯১৫-৪২৭০৭০ (সকাল ১১ টা থেকে দুপুর ১ টা পর্যন্ত)।
Tags
PHP