Pengendalian ralat PHP 7
PHP 7 mengubah cara kebanyakan ralat dilaporkan. Tidak seperti mekanisme pelaporan ralat tradisional PHP 5, kebanyakan ralat kini dibuang sebagai pengecualian Ralat.
Pengecualian Ralat ini boleh ditangkap dengan cubaan / tangkap blok seperti pengecualian biasa. Jika tiada blok try / catch yang sepadan, fungsi pengendalian pengecualian (didaftarkan oleh set_exception_handler()) dipanggil untuk diproses. Jika pengendali pengecualian belum didaftarkan, ia dikendalikan dengan cara tradisional: ia dilaporkan sebagai Ralat Maut.
Kelas Ralat tidak dilanjutkan daripada kelas Pengecualian, jadi kod seperti tangkapan (Pengecualian $e) { ... } tidak boleh menangkap Ralat. Anda boleh menggunakan kod seperti tangkapan (Ralat $e) { ... } atau daftarkan pengendali pengecualian (set_exception_handler()) untuk menangkap Ralat.
Hierarki pengecualian ralat
- Ralat
- AritmetikError<🎜
- AssertionError
- DivisionByZeroError
- <🎜 ParseError
- TypeError
Exception - ...
<?php class MathOperations { protected $n = 10; // 求余数运算,除数为 0,抛出异常 public function doOperation(): string { try { $value = $this->n % 0; return $value; } catch (DivisionByZeroError $e) { return $e->getMessage(); } } } $mathOperationsObj = new MathOperations(); print($mathOperationsObj->doOperation()); ?>Above The hasil keluaran pelaksanaan program ialah:
Modulo by zero