Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Amalan terbaik untuk pengendalian ralat dalam fungsi PHP

Amalan terbaik untuk pengendalian ralat dalam fungsi PHP

PHPz
PHPzasal
2023-06-15 20:57:48994semak imbas

PHP ialah bahasa skrip yang digunakan secara meluas, terutamanya dalam pembangunan web, yang memainkan peranan yang sangat penting. Dalam proses pembangunan PHP, pengendalian ralat adalah isu yang sangat penting. Pengendalian ralat fungsi adalah bahagian yang sangat penting. Artikel ini akan memperkenalkan beberapa amalan terbaik untuk pengendalian ralat fungsi PHP untuk membantu pembangun menghadapi pelbagai ralat yang mungkin berlaku dengan lebih baik semasa menulis kod berkualiti tinggi.

1. Gunakan struktur cuba/tangkap

PHP menyediakan struktur cuba/tangkap, yang juga merupakan cara paling asas untuk mengendalikan ralat fungsi PHP. Gunakan struktur cuba/tangkap untuk melaksanakan pengendalian ralat apabila ralat berlaku dalam kod untuk mengelakkan kod daripada ranap akibat ralat tunggal.

Sebagai contoh, berikut ialah fungsi mudah untuk menyambung ke pangkalan data dan melaksanakan pertanyaan SQL:

function run_query($query) {
    $conn = mysqli_connect("localhost", "username", "password", "database");
    if(!$conn) {
        throw new Exception("Database connection failed.");
    }
    $result = mysqli_query($conn, $query);
    if(!$result) {
        throw new Exception("Query failed: " . mysqli_error($conn));
    }
    mysqli_close($conn);
    return $result;
}

Dalam fungsi, jika terdapat ralat menyambung ke pangkalan data atau melaksanakan pertanyaan, kami akan membuang Pengecualian berlaku. Walau bagaimanapun, semasa proses panggilan fungsi, kita perlu menggunakan struktur cuba/tangkap untuk menangkap pengecualian ini dan mengendalikannya dengan sewajarnya:

try {
    $result = run_query("SELECT * FROM users");
} catch(Exception $e) {
    echo "Error: " . $e->getMessage();
    exit;
}
//使用$result继续代码的执行

Dengan cara ini, apabila masalah berlaku dalam fungsi, kod tidak akan ranap , tetapi akan mengeluarkan mesej ralat dan menghentikan pelaksanaan skrip. Ini boleh meningkatkan keteguhan kod anda.

2. Gunakan kawalan tahap ralat

Dalam PHP, kita boleh menggunakan tahap ralat untuk mengawal pengendalian ralat fungsi. Dengan menghantar tahap ralat yang berbeza kepada fungsi error_reporting(), kita boleh mengawal tingkah laku fungsi apabila ralat berlaku. Tahap ralat yang biasa digunakan dalam PHP ialah:

  • E_ERROR: Ralat maut ini akan menyebabkan kod tidak dapat meneruskan pelaksanaan menamatkan skrip.
  • E_WARNING: Ralat amaran ini hanya mengingatkan pembangun tentang kemungkinan masalah dalam kod, tetapi tidak akan menyebabkan kod itu ranap.
  • E_NOTICE: Beri perhatian kepada ralat ini tidak akan menjejaskan pelaksanaan kod, tetapi boleh menyebabkan pembangun mempunyai nilai pembolehubah yang salah atau mengembalikan hasil. Pembangun dikehendaki menyemak kod dan membuat pengubahsuaian.

Semasa pembangunan kod PHP, kami mengesyorkan menggunakan tahap ralat yang sesuai untuk memastikan pelaksanaan kod yang lancar dan output berkualiti tinggi.

3. Gunakan nilai pulangan dan kod status

Apabila mengendalikan ralat fungsi, kita boleh menggunakan nilai pulangan dan kod status dalam dua cara. Dengan menetapkan nilai pulangan yang berbeza dan kod status fungsi, kita boleh mendapatkan maklumat ralat yang berkaitan selepas fungsi itu dilaksanakan. Ini adalah kaedah pengendalian ralat yang sangat biasa dan sering digunakan dalam pakej MySQLi.

Di bawah ini kita boleh menggunakan nilai pulangan fungsi untuk menentukan sama ada pertanyaan itu berjaya dan mengembalikan hasil pertanyaan yang berkaitan pada masa yang sama:

function get_user_info($user_id) {
    $conn = mysqli_connect("localhost", "username", "password", "database");
    if(!$conn) {
        return array(false, "Database connection failed.");
    }
    $result = mysqli_query($conn, "SELECT * FROM users WHERE user_id={$user_id}");
    if(!$result) {
        return array(false, "Query failed: " . mysqli_error($conn));
    }
    $users = array();
    while($row = mysqli_fetch_assoc($result)) {
        $users[] = $row;
    }
    mysqli_close($conn);
    return array(true, $users);
}

Dalam fungsi ini, jika pertanyaan itu berjaya, fungsi akan mengembalikan true dan Array hasil pertanyaan. Jika pertanyaan gagal, fungsi akan mengembalikan palsu dan mesej ralat. Kemudian, kita boleh menilai nilai pulangan fungsi apabila ia dipanggil, dan dengan itu memilih cara mengendalikan ralat berdasarkan pelaksanaan fungsi tersebut.

$user_info = get_user_info(1);
if(!$user_info[0]) {
    echo "Error: " . $user_info[1];
    exit;
}
//使用$user_info[1]继续代码的执行

Perhatikan bahawa apabila menggunakan nilai pulangan dan kod status untuk mengendalikan ralat, anda perlu mengelakkan fungsi mengembalikan berbilang jenis hasil. Ini akan meningkatkan kerumitan kod dan mengurangkan kebolehbacaan kod.

4. Digabungkan dengan pengelogan ralat

Semasa proses pembangunan kod, kami mengesyorkan untuk melengkapkan pelayan dengan sistem pengelogan ralat. Sistem pengelogan ini boleh menangkap ralat semasa kod berjalan dan menulis maklumat ralat ke fail log. Kita boleh menggunakan fungsi error_log() terbina dalam PHP untuk melaksanakan pengelogan.

function logging_query($query, $filename) {
    $conn = mysqli_connect("localhost", "username", "password", "database");
    if(!$conn) {
        error_log("Database connection failed.", 0);
        return false;
    }
    $result = mysqli_query($conn, $query);
    if(!$result) {
        error_log("Query failed: " . mysqli_error($conn), 0);
        return false;
    }
    mysqli_close($conn);
    return true;
}

Masih sama seperti contoh sebelumnya, dalam fungsi, kami merekod maklumat ralat apabila ralat berlaku. Kaedah ini bukan sahaja dapat membantu pembangun mengesan ralat, tetapi juga memantau aplikasi web dan membantu kami menemui masalah yang berpotensi.

Kesimpulan

Pengendalian ralat fungsi PHP adalah bahagian yang sangat penting Dalam proses pembangunan kod, kita sering menghadapi pelbagai ralat. Dengan menggunakan amalan terbaik yang diterangkan dalam artikel ini, kami boleh menangani ralat ini dan mengekalkan kualiti kod kami. Sudah tentu, terdapat banyak kaedah pengendalian ralat lain, seperti menggunakan penegasan dan pengecualian, memastikan keselamatan dalam pengendalian ralat, dan sebagainya. Saya harap artikel ini dapat membantu pembangun PHP memahami dengan lebih baik teknologi berkaitan pengendalian ralat fungsi.

Atas ialah kandungan terperinci Amalan terbaik untuk pengendalian ralat dalam fungsi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn