Dengan kemunculan era digital, atur cara komputer memainkan peranan yang semakin penting dalam kehidupan seharian manusia Namun, memandangkan kod program boleh mengandungi pelbagai ralat, pengendalian ralat juga menjadi penting. Sebagai bahasa skrip yang digunakan secara meluas, PHP memperkenalkan mekanisme pengendalian pengecualian baharu dalam versi 7.0 yang dikeluarkan baru-baru ini. Artikel ini memperkenalkan mekanisme baharu ini dan membincangkan cara menggunakannya untuk mengendalikan pengecualian.
Mekanisme pengendalian pengecualian ialah mekanisme pengendalian ralat dalam pengaturcaraan komputer Mekanisme ini digunakan untuk menangkap ralat dalam atur cara dan mengendalikannya dengan sewajarnya apabila ralat berlaku. Dalam PHP, mekanisme pengecualian pertama kali diperkenalkan dalam versi 5.0, bagaimanapun, cara ia dilaksanakan tidak intuitif atau mudah dibaca. Dalam versi 7.0, PHP memperkenalkan mekanisme pengendalian pengecualian baharu dengan sintaks yang lebih ringkas dan intuitif, yang turut menjadikan pengendalian pengecualian lebih mudah untuk dilaksanakan dan diselenggara.
Mekanisme pengendalian pengecualian tersuai dalam PHP7.0 mempunyai kaedah pelaksanaan berikut:
Dalam PHP, disyorkan Gunakan kelas pengecualian untuk mengendalikan pengecualian yang berlaku dalam program anda. Kelas pengecualian ini mesti melaksanakan antara muka pengecualian terbina dalam PHP Throwable. Dalam pembina, anda boleh menentukan mesej pengecualian dan memanggil pembina kelas induk. Kod berikut menunjukkan cara membuat kelas pengecualian:
<? php class MyCustomException extends Exception { public function __construct($message, $code = 0, Throwable $previous = null) { parent::__construct($message, $code, $previous); } } ?>
Untuk membuang pengecualian, anda perlu menggunakan kata kunci lempar terbina dalam PHP. Untuk membuang pengecualian tersuai, hanya buat contoh kelas pengecualian dan hantarkannya sebagai parameter kepada pernyataan lontaran. Kod berikut menunjukkan cara membuang pengecualian tersuai:
<? php throw new MyCustomException("An error has occurred!", 1); ?>
Apabila atur cara melaksanakan pernyataan lontaran, atur cara akan menghentikan pelaksanaan dan kawalan akan dipindahkan ke blok kod yang menangkap pengecualian.
Untuk menangkap pengecualian, anda perlu menggunakan blok cuba-tangkap. Kod yang mungkin menyebabkan pengecualian dilaksanakan dalam blok cuba Jika pengecualian dilemparkan, program akan melompat ke blok tangkapan. Dalam blok tangkapan, gunakan parameter $e untuk menentukan contoh pengecualian untuk ditangkap, dan kendalikannya dengan sewajarnya dalam blok tangkapan. Kod berikut menunjukkan cara menggunakan blok cuba-tangkap untuk menangkap pengecualian:
<?php try { // Code that may throw an exception } catch (MyCustomException $e) { // Handle the caught exception } ?>
Jika tiada pengecualian dilemparkan dalam blok cuba, atur cara akan terus melaksanakan kod selepas blok tangkapan. Jika pengecualian tidak ditangkap, program akan membuang ralat maut dan menghentikan pelaksanaan.
Blok percubaan boleh mempunyai berbilang blok tangkapan untuk menangkap jenis pengecualian yang berbeza. Susunan berbilang blok tangkapan adalah penting Pengecualian subkelas mesti diletakkan sebelum pengecualian kelas induk, jika tidak, keputusan yang tidak dapat diramalkan akan berlaku. Kod berikut menunjukkan cara menggunakan berbilang blok tangkapan untuk menangkap jenis pengecualian yang berbeza:
<?php try { // Code that may throw an exception } catch (MyCustomException $e) { // Handle MyCustomException } catch (Exception $e) { // Handle all other exceptions } ?>
Dalam contoh di atas, jika MyCustomException dilemparkan, maka blok tangkapan pertama mengendalikan pengecualian. Jika jenis pengecualian lain dilemparkan, blok tangkapan kedua mengendalikan pengecualian.
Sekat akhirnya dilaksanakan selepas blok cuba-tangkap dan akan dilaksanakan tanpa mengira sama ada pengecualian itu ditangkap atau tidak. Blok akhirnya biasanya digunakan untuk melepaskan sumber sistem atau melakukan beberapa kerja pembersihan umum. Kod berikut menunjukkan cara menggunakan blok akhirnya:
<?php try { // Code that may throw an exception } catch (MyCustomException $e) { // Handle MyCustomException } finally { // This code always runs } ?>
Secara ringkasnya, PHP7.0 menyediakan mekanisme pengendalian pengecualian yang lebih mudah dan intuitif. Lima kaedah di atas boleh digunakan dalam kombinasi, yang juga memudahkan untuk melaksanakan mekanisme pengendalian pengecualian lengkap. Terutamanya dalam projek besar, menggunakan mekanisme pengendalian pengecualian yang baik boleh meningkatkan kebolehbacaan, kebolehpercayaan dan kebolehselenggaraan kod.
Atas ialah kandungan terperinci Apakah kaedah pelaksanaan pengendalian pengecualian tersuai dalam PHP7.0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!