Ringkasan pengecualian tersuai dan kaedah pengendalian ralat dan masalah biasa dalam PHP

PHPz
Lepaskan: 2023-06-08 10:48:01
asal
2112 orang telah melayarinya

Ringkasan pengecualian tersuai, kaedah pengendalian ralat dan masalah biasa dalam PHP

Dalam pembangunan program, tidak dapat dielakkan untuk menghadapi ralat atau pengecualian. PHP menyediakan banyak fungsi pengendalian pengecualian dan ralat terbina dalam, tetapi kami juga perlu menyesuaikan kaedah pengendalian pengecualian kami sendiri untuk memastikan keteguhan program kami dengan lebih baik. Dalam artikel ini, kami akan memperkenalkan cara menggunakan mekanisme pengendalian pengecualian dalam PHP, pengecualian tersuai, cara mengendalikan ralat biasa dan masalah biasa.

1. Mekanisme pengendalian pengecualian PHP

Mekanisme pengendalian pengecualian dalam PHP dilaksanakan melalui kenyataan try, catch dan throw. Apabila pengecualian berlaku dalam program, kod dalam blok cuba akan berhenti melaksanakan dan kemudian pergi ke blok tangkapan untuk mengendalikan pengecualian. Berikut ialah program tunjuk cara mudah:

cuba {

// some code
throw new Exception('Something went wrong');
// some more code
Salin selepas log masuk

} tangkap (Pengecualian $e) {

echo 'Caught exception: ',  $e->getMessage(), "
Salin selepas log masuk

";
}

Dalam kod di atas, kita akan menangkap pengecualian jenis Pengecualian Apabila pernyataan lontaran dilaksanakan, kod dalam blok cuba akan berhenti dan jatuh ke dalam blok tangkapan Kemudian, kita akan mengakses pengecualian yang ditangkap melalui pembolehubah $e dalam tangkapan blok. Objek pengecualian, anda boleh memanggil kaedah getMessage untuk mendapatkan maklumat pengecualian

2 pengecualian tersuai PHP

Selain pengecualian terbina dalam PHP, kami juga boleh menentukan kelas pengecualian. sendiri. Ia biasanya digunakan untuk membuang pengecualian tersuai kami sendiri untuk memastikan keselamatan dan penyeragaman program Berikut ialah contoh pengecualian tersuai:

kelas MyException memanjangkan Pengecualian {

public function __construct($message, $code = 0, Exception $previous = null) {
    parent::__construct($message, $code, $previous);
}
public function __toString() {
    return __CLASS__ . ": [{$this->code}]: {$this->message}
Salin selepas log masuk

";

}
public function customFunction() {
    echo "A custom function for this type of exception
Salin selepas log masuk

";

}
Salin selepas log masuk

}

Dalam contoh ini kami mentakrifkan kelas pengecualian bernama MyException, yang diwarisi daripada kelas pengecualian terbina dalam PHP Kami kecuali Selain warisan, anda juga boleh menambah beberapa kaedah dan atribut tersuai Apabila kami membuang MyException ke dalam program, kami juga boleh menangkapnya melalui tangkapan seperti pengecualian terbina dalam sistem , Pengendalian ralat PHP biasa dan masalah biasa

Pembolehubah tidak ditentukan
  1. Dalam PHP, penggunaan pembolehubah tidak ditentukan adalah salah satu ralat yang paling biasa Kita boleh menambah pernyataan penghakiman dalam kod:

if (isset($variable)) {

// do something
Salin selepas log masuk
Salin selepas log masuk

} else {

echo 'Variable is not defined';
Salin selepas log masuk
Salin selepas log masuk

}

a Penyelesaian yang lebih baik adalah dengan memulakan pembolehubah sebelum menggunakannya:

$pembolehubah = '';

// beberapa kod

jika ($pembolehubah !== '') {

// do something
Salin selepas log masuk
Salin selepas log masuk

} lain {

echo 'Variable is not defined';
Salin selepas log masuk
Salin selepas log masuk

}

Pembahagian dengan sifar
  1. Masalah ini berlaku apabila nilai penyebutnya ialah 0. Kami Penyataan bersyarat perlu ditambah pada kod untuk mengelakkan penyebut menjadi 0:

jika ($penyebut !== 0) {

$result = $numerator / $denominator;
Salin selepas log masuk

} lain {

echo 'Division by zero error';
Salin selepas log masuk

}

Tiada titik koma
  1. Masalah ini biasanya berpunca daripada salah ejaan atau terlupa untuk menambah koma bertitik. Kami boleh menggunakan alat automatik dalam kod untuk menyelesaikan masalah ini, seperti PHP Code Sniffer, dsb.

Ralat maut: Masa pelaksanaan maksimum N saat melebihi
  1. Masalah ini biasanya disebabkan oleh masa pelaksanaan skrip melebihi had masa pelaksanaan maksimum yang ditentukan oleh PHP. Kita boleh menambah pernyataan berikut dalam kod untuk memanjangkan masa pelaksanaan maksimum skrip:

ini_set('max_execution_time', 300);

Di sini kami menetapkan masa pelaksanaan maksimum skrip kepada 300 saat.

Kesimpulan

Artikel ini memperkenalkan mekanisme pengendalian pengecualian, pengecualian tersuai, kaedah pengendalian ralat biasa dan masalah biasa dalam PHP. Memahami dan menguasai mekanisme pengendalian pengecualian ini boleh meningkatkan keteguhan program kami dan meningkatkan kecekapan pembangunan kami. Kami berharap pembaca akan mempelajari beberapa kemahiran berguna dan membangunkan tabiat pengaturcaraan yang baik daripada artikel ini.

Atas ialah kandungan terperinci Ringkasan pengecualian tersuai dan kaedah pengendalian ralat dan masalah biasa dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan