Exception Handling এবং Custom Error Logs

MySQLi তে Error Handling - মাইএসকিউএল আই (MySQLi) - Database Tutorials

313

MySQLi (MySQL Improved) ড্রাইভার ব্যবহার করে ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করার সময়, exception handling এবং custom error logs ব্যবহারের মাধ্যমে ত্রুটিগুলোর মোকাবিলা করা অত্যন্ত গুরুত্বপূর্ণ। সঠিকভাবে exception handling ব্যবহার করা হলে, অ্যাপ্লিকেশনের স্থিতিশীলতা বৃদ্ধি পায় এবং ডাটাবেসের ত্রুটিগুলো সহজে চিহ্নিত করা যায়।


MySQLi Exception Handling

PHP তে exception handling এর জন্য try-catch ব্লক ব্যবহার করা হয়। MySQLi-তে exception handling সঠিকভাবে ব্যবহারের জন্য, MySQLi ক্লাসের exception-কে enable করতে হয়। সাধারণত, MySQLi ড্রাইভার ত্রুটির ক্ষেত্রে warnings বা errors প্রদান করে, তবে exceptions ব্যবহারের মাধ্যমে এগুলোকে সহজে হ্যান্ডেল করা যায়।

MySQLi-তে exception handling চালু করতে নিচের মতো কোড ব্যবহার করা যেতে পারে:

<?php
mysqli_report(MYSQLI_REPORT_STRICT);  // Exception reporting চালু করা

try {
    $mysqli = new mysqli("localhost", "username", "password", "database_name");

    // Connection error handling
    if ($mysqli->connect_error) {
        throw new Exception("Connection failed: " . $mysqli->connect_error);
    }

    // Query execution example
    $result = $mysqli->query("SELECT * FROM users");
    if (!$result) {
        throw new Exception("Query failed: " . $mysqli->error);
    }

    // Process result if query is successful
    while ($row = $result->fetch_assoc()) {
        echo "User: " . $row['name'] . "<br>";
    }

} catch (Exception $e) {
    echo "Error: " . $e->getMessage();  // Exception message showing
} finally {
    $mysqli->close();
}
?>

Exception Handling ব্যাখ্যা

  1. mysqli_report(MYSQLI_REPORT_STRICT): mysqli_report(MYSQLI_REPORT_STRICT) কল করলে MySQLi ড্রাইভার exceptions throw করবে যখন কোনো সমস্যা ঘটে। এর ফলে ডাটাবেস সংক্রান্ত সব ধরনের ত্রুটি exceptions হিসেবে ধরা হবে, যা try-catch ব্লকে হ্যান্ডল করা যাবে।
  2. Try-Catch Block: try ব্লকের মধ্যে আপনি যে কোডটি রান করাতে চান তা লিখবেন। যদি কোনো exception ঘটে, তাহলে এটি catch ব্লকে চলে যাবে, এবং আপনি exception এর বার্তা বা ডিটেইলস পেতে পারবেন।
  3. Throwing Exceptions: throw new Exception() ব্যবহার করে, আপনি নিজের তৈরি ত্রুটিগুলোকেও exceptions হিসেবে থ্রো করতে পারেন। উদাহরণস্বরূপ, যদি কোনো কুয়েরি সফল না হয়, তাহলে আপনি একটি exception থ্রো করে ত্রুটির কারণ জানাতে পারেন।

Custom Error Logs

তথ্য এবং ডিবাগিংয়ের জন্য কাস্টম error logs রাখা খুবই কার্যকরী। আপনি যখন exception বা error পেতে পারেন, তখন সেই ত্রুটির তথ্য একটি error log ফাইলে সেভ করে রাখতে পারেন, যা পরবর্তীতে ডিবাগিং বা বিশ্লেষণের কাজে আসবে। PHP তে error logging খুব সহজে করা যায়।

<?php
mysqli_report(MYSQLI_REPORT_STRICT);  // Exception reporting চালু করা

try {
    $mysqli = new mysqli("localhost", "username", "password", "database_name");

    // Connection error handling
    if ($mysqli->connect_error) {
        throw new Exception("Connection failed: " . $mysqli->connect_error);
    }

    // Query execution example
    $result = $mysqli->query("SELECT * FROM users");
    if (!$result) {
        throw new Exception("Query failed: " . $mysqli->error);
    }

} catch (Exception $e) {
    // Custom error logging to a file
    error_log("Error on " . date('Y-m-d H:i:s') . " - " . $e->getMessage() . "\n", 3, "error_log.txt");
    echo "Error: " . $e->getMessage();  // Show the error to the user
} finally {
    $mysqli->close();
}
?>

Custom Error Logs ব্যাখ্যা

  1. error_log() Function: error_log() ফাংশন ব্যবহার করে আপনি error logs কাস্টম ফাইলে লিখতে পারেন। এখানে প্রথম প্যারামিটার হল ত্রুটির মেসেজ, দ্বিতীয় প্যারামিটার হল log level (এখানে 3 মানে হল ফাইল আউটপুট), এবং তৃতীয় প্যারামিটার হল log ফাইলের পাথ (এখানে "error_log.txt" ফাইলটি ব্যবহার করা হয়েছে)।
  2. Timestamp: সাধারণত, আপনি error logs এ ত্রুটির সময় (timestamp) অন্তর্ভুক্ত করবেন, যাতে ত্রুটির সময়টি পর্যালোচনা করা সহজ হয়।
  3. Error Details: ত্রুটির বিস্তারিত তথ্য যেমন error message, file name, এবং line number ব্যবহার করে ডিবাগিং সহজ করা যেতে পারে। এটি বড় প্রজেক্টে ত্রুটি ট্র্যাক করার ক্ষেত্রে অত্যন্ত কার্যকর।

সারাংশ

MySQLi-তে exception handling ব্যবহারের মাধ্যমে ত্রুটিগুলোকে সঠিকভাবে হ্যান্ডল করা যায় এবং custom error logs এর মাধ্যমে সেই ত্রুটিগুলোর বিস্তারিত তথ্য সংরক্ষণ করা সম্ভব। exception handling ডেভেলপারকে ত্রুটি চিহ্নিত করতে এবং দ্রুত সমাধান বের করতে সহায়তা করে, এবং error logs ডিবাগিং এবং বিশ্লেষণ করতে সহায়ক। MySQLi ড্রাইভার ব্যবহার করার সময়, exception reporting এবং error logging টেকনিক্যাল ত্রুটি সমাধানে গুরুত্বপূর্ণ ভূমিকা পালন করে।

Content added By
Promotion

Are you sure to start over?

Loading...