Rumah > pembangunan bahagian belakang > tutorial php > Kursus kemalangan perubahan kepada pengendalian pengecualian di Php 7

Kursus kemalangan perubahan kepada pengendalian pengecualian di Php 7

尊渡假赌尊渡假赌尊渡假赌
Lepaskan: 2025-02-10 09:57:09
asal
973 orang telah melayarinya

A Crash Course of Changes to Exception Handling in PHP 7

Penambahbaikan utama dalam Php 7 Pengendalian Pengecualian

Php 7 telah membuat penambahbaikan yang ketara kepada pengendalian pengecualian, memperkenalkan antara muka

dan Throwable, yang meningkatkan keupayaan pengendalian ralat. Antara muka Error adalah antara muka asas kelas Throwable dan Exception, yang membolehkan pemaju menangkap semua kesilapan yang boleh dibuang, sama ada pengecualian atau kesilapan. Kelas Error mengendalikan pelbagai kesilapan PHP dalaman, termasuk ralat maut dan jenis, dan dipecahkan kepada empat subkelas: Error, ArithmeticError, TypeError, ParseError, dan AssertionError.

A Crash Course of Changes to Exception Handling in PHP 7

antara muka Throwable Antara muka

adalah antara muka induk Throwable dan Exception kelas, yang membolehkan anda menangkap sebarang kesilapan yang boleh dibuang, tanpa mengira sama ada pengecualian atau kesilapan. Contohnya: Error

atau baru
<?php try {
    throw new Exception("这是一个异常");
} catch (Throwable $e) {
    echo $e->getMessage();
}
Salin selepas log masuk
:

ParseError

Jalankan kod ini untuk mendapatkan
<?php try {
    $result = eval("2*'7'");
} catch (Throwable $e) {
    echo $e->getMessage();
}
Salin selepas log masuk
kerana titik koma hilang dalam

. ParseError eval() Kelas tersuai tidak boleh dilaksanakan secara langsung

, tetapi mesti melanjutkan kelas

yang melaksanakan antara muka Throwable. Throwable Exception

kategori Error Kelas mengendalikan kesilapan dalaman PHP (ralat maut atau ralat jenis). Ia mempunyai empat subkelas:

Error: ralat aritmetik, seperti membahagikan dengan sifar.

  1. : Jenis ralat, seperti memberikan nilai jenis yang salah kepada pembolehubah. ArithmeticError
  2. : ralat parsing, seperti ralat sintaks. TypeError
  3. : ralat penegasan, dilemparkan apabila keadaan dalam fungsi ParseError adalah palsu.
  4. AssertionError Sebelum menaik taraf ke Php 7, jika kelas assert() adat ditakrifkan, namanya mesti diubah, jika tidak, ralat maut akan berlaku.

Error

Kesalahan ini berlaku apabila melakukan operasi matematik. Sebagai contoh, gunakan ArithmeticError:

akan mendapat "intdiv() pembahagian php_int_min oleh -1

" ralat.
<?php try {
    var_dump(intdiv(PHP_INT_MIN, -1));
} catch (ArithmeticError $e) {
    echo $e->getMessage();
}
Salin selepas log masuk
adalah subclass

dan dibuang apabila dibahagikan dengan sifar. DivisionByZeroError ArithmeticError

Kesalahan ini terutamanya berkaitan dengan perisytiharan jenis skalar dalam Php 7. Ralat ini dipaparkan apabila anda membuat fungsi atau pemboleh ubah jenis data tertentu dan cuba menyimpan nilai untuk jenis data yang berbeza. TypeError

Ralat ini dilemparkan apabila menggunakan ParseError untuk memasukkan baris kod baru atau menggunakan fail PHP luaran yang mengandungi ralat sintaks.

eval()

Ralat ini hanya dibuang apabila penegasan dalam fungsi assert() gagal. Arahan php.ini dan assert.exception dikehendaki dikonfigurasi dalam zend.assertions untuk menangkap ralat ini.

Ringkasan

Kelas Throwable dan Error yang diperkenalkan dalam Php 7 memudahkan pengendalian pengecualian dan membuat pengendalian pelbagai jenis ralat lebih mudah. Apabila menaik taraf kepada Php 7, sedar akan isu penamaan dengan kelas dan terbiasa dengan kesilapan baru dan kelas lanjutan. Error

FAQs (FAQs)

  • Apakah perubahan utama dalam pengendalian pengecualian Php 7? Php 7 memperkenalkan kelas dan Throwable, dan semua kesilapan boleh dianggap sebagai pengecualian dan ditangkap dengan blok Error. try/catch

  • Bagaimana antara muka berfungsi? Throwable adalah antara muka asas untuk semua pengecualian, dilaksanakan oleh Throwable dan Exception. Error

  • Apakah fungsi kelas? Kelas Error digunakan untuk mengendalikan kesilapan PHP dalaman. Error

  • Bagaimana menangani pengecualian dalam Php 7? Gunakan blok untuk menangkap try/catch, Throwable dan Exception objek. Error

  • Apakah perbezaan antara
  • dan Exception? Error Untuk pengecualian tradisional, Exception untuk kesilapan PHP dalaman. Error

  • Bagaimana untuk membuang pengecualian dalam Php 7? Gunakan kata kunci . throw

  • Bagaimana untuk membuat pengecualian tersuai dalam Php 7? extend kelas. Exception

  • Apakah fungsi kata kunci? finally Kod dalam blok akan dilaksanakan tanpa mengira sama ada pengecualian dilemparkan atau tidak. finally

  • Bagaimana untuk membuang semula pengecualian dalam Php 7? Gunakan kata kunci dalam blok catch. throw

  • Bagaimana untuk mengendalikan pelbagai pengecualian dalam Php 7? Sertakan pelbagai blok dalam pernyataan . try/catch catch

Atas ialah kandungan terperinci Kursus kemalangan perubahan kepada pengendalian pengecualian di Php 7. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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