cari
  • Log masuk
  • Daftar
Penetapan semula kata laluan berjaya

Ikuti proiects vou berminat dengan andi aet terbaru mengenai mereka

Rumah pembangunan bahagian belakang PHP Manual ciri baharu PHP7 Ralat mengendalikan pengubahsuaian mekanisme

Ralat mengendalikan pengubahsuaian mekanisme

1 Kini terdapat dua kelas pengecualian: Pengecualian dan Ralat

PHP7 kini mempunyai dua kelas pengecualian, Pengecualian dan Ralat. Kedua-dua kelas melaksanakan antara muka baharu: Throwable. Dalam kod pengendalian pengecualian anda, petunjuk jenis mungkin perlu dilaraskan.

2. Beberapa ralat maut dan ralat maut boleh pulih ditukar untuk membuang objek Ralat.

Sesetengah ralat maut dan ralat maut boleh pulih kini dilaporkan sebagai objek Ralat. Objek ralat adalah bebas daripada Pengecualian, dan ia tidak boleh ditangkap dengan cubaan/tangkapan biasa. Nota editor: Anda perlu mendaftarkan fungsi pengendalian ralat, sila rujuk RFC di bawah.

Ralat maut boleh pulih ini yang telah bertukar menjadi pengecualian tidak lagi boleh diabaikan secara senyap melalui pengendali ralat. Khususnya, ralat pembayang jenis tidak boleh diabaikan.

3. Ralat sintaks akan membuang objek ParseError

Ralat sintaks akan membuang objek ParseError, yang mewarisi daripada objek Ralat. Semasa mengendalikan eval() sebelum ini, selain menyemak nilai pulangan atau error_get_last() untuk kod yang berpotensi ralat, anda juga harus menangkap objek ParseError.

4. Kaedah pembinaan objek dalaman akan sentiasa membuang pengecualian jika gagal. Sesetengah pembina sebelumnya akan mengembalikan NULL atau objek yang tidak boleh digunakan.

5. Tahap beberapa ralat E_STRICT telah dilaraskan.


Pengendalian Ralat PHP 7

PHP 7 mengubah cara kebanyakan ralat dilaporkan. Tidak seperti mekanisme pelaporan ralat tradisional PHP 5, kebanyakan ralat kini dilemparkan sebagai pengecualian Ralat.

Pengecualian Ralat jenis ini boleh ditangkap dengan cuba / tangkap blok seperti pengecualian biasa. Jika tiada blok cuba / tangkap 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 (Exception $e) { ... } tidak boleh ditangkap kepada Ralat. Anda boleh menggunakan kod seperti tangkapan (Ralat $e) { ... } atau dengan mendaftarkan fungsi pengendalian pengecualian ( set_exception_handler()) untuk menangkap Ralat.

Hierarki pengecualian ralat


1.Ralat ​

    AritmetikRalat OnAssertionerror OnDivisionbyzeroerror AtauPARSEERROR OrTyperror ​

  • 2.Pengecualian

  • ...


  • contoh
    Pengecualian PHP 7
    1458887252-2773-exception-hiearchy.jpg
    Pengecualian PHP 7 digunakan untuk Kurangkan keserasian dan peningkatan fungsi assert() lama. Ia membolehkan penegasan kos sifar dalam persekitaran pengeluaran dan menyediakan keupayaan untuk membuang pengecualian dan ralat tersuai.
    Versi lama API akan terus dikekalkan untuk tujuan keserasian, assert() kini merupakan binaan bahasa, yang membolehkan parameter pertama menjadi ungkapan, bukan sekadar rentetan untuk dikira atau boolean untuk diuji .
    tegaskan() konfigurasi

    Item konfigurasiNilai lalai

    Nilai pilihan

    1 penegasan

    1 - Jana dan laksanakan kod (mod pembangunan )

    0 - Jana kod, tetapi langkau apabila melaksanakan

    -1 - Jangan jana kod (persekitaran pengeluaran)


    • 1 - Dilemparkan apabila penegasan gagal, objek pengecualian boleh dilemparkan, atau contoh objek AssertionError dilemparkan jika tiada pengecualian disediakan.

    • 0 - Gunakan atau jana Boleh Lempar, cuma jana amaran berdasarkan objek dan bukannya membaling objek (serasi dengan PHP 5)

    parameter

    penegasan

    penegasan. Dalam PHP 5, rentetan untuk pelaksanaan atau boolean untuk ujian. Dalam PHP 7, ini boleh menjadi ungkapan yang mengembalikan sebarang nilai, dan hasilnya akan digunakan untuk menunjukkan sama ada pernyataan itu berjaya.

    penerangan

    Jika penegasan gagal, penerangan pilihan akan disertakan dalam mesej kegagalan.

    exception

    Dalam PHP 7, parameter kedua boleh menjadi objek Boleh Lempar dan bukannya rentetan, yang akan dilemparkan jika penegasan gagal dan assert.exception didayakan. Contoh

    <?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());
    ?>
    Hasil keluaran pelaksanaan program di atas ialah:
    Modulo by zero

    Alat AI Hot
    Undress AI Tool
    Undress AI Tool

    Gambar buka pakaian secara percuma

    AI Clothes Remover
    AI Clothes Remover

    Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

    Undresser.AI Undress
    Undresser.AI Undress

    Apl berkuasa AI untuk mencipta foto bogel yang realistik

    Stock Market GPT
    Stock Market GPT

    Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

    Alat popular
    Notepad++7.3.1
    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    SublimeText3 versi Cina
    SublimeText3 versi Cina

    Versi Cina, sangat mudah digunakan

    Hantar Studio 13.0.1
    Hantar Studio 13.0.1

    Persekitaran pembangunan bersepadu PHP yang berkuasa

    Dreamweaver CS6
    Dreamweaver CS6

    Alat pembangunan web visual

    SublimeText3 versi Mac
    SublimeText3 versi Mac

    Perisian penyuntingan kod peringkat Tuhan (SublimeText3)