cari

Rumah  >  Soal Jawab  >  teks badan

Cuba/Tangkap blok dalam PHP tidak dapat menangkap situasi pengecualian

<p>Saya cuba menjalankan contoh #1 ini, dari halaman ini: http://php.net/manual/en/language.exceptions.php</p> <pre class="brush:php;toolbar:false;"><?php fungsi songsang($x) { jika (!$x) { buang Exception baru('Bahagian dengan sifar.'); } pulangkan 1/$x; } cuba { echo songsang(5) "n"; echo songsang(0) "n"; } tangkapan (Pengecualian $e) { echo 'Caught exception: ', $e->getMessage(), "n"; } // Teruskan pelaksanaan echo "Hello Worldn"; ?></pra> <p>Walau bagaimanapun, output yang saya perolehi tidak dijangka: </p> <pre class="brush:php;toolbar:false;">0.2 Ralat maut: Pengecualian tidak ditangkap 'Pengecualian' dengan mesej 'Bahagian dengan sifar.' inxxx: 7 Surih tindanan: #0 xxx(14): songsang(0) #1 {utama} dibuang dalam xxx pada baris 7</pre> <p>Persekitaran pembangunan yang saya gunakan ialah <code>UniServer 3.5</code> dan <code>PHP 5.2.3</code></p>
P粉226413256P粉226413256461 hari yang lalu500

membalas semua(1)saya akan balas

  • P粉611456309

    P粉6114563092023-08-23 14:46:31

    Saya baru sahaja menghadapi masalah yang tepat ini, rasanya saya telah menyalin nama pengecualian tetapi ia tidak menangkapnya. Ternyata satu kesilapan bodoh di pihak saya, tetapi saya fikir saya akan menyiarkan situasi saya di sini sekiranya orang lain berada dalam situasi yang sama.

    Pengecualian saya dipanggil A dalam ruang nama saya dan skrip dipanggil B dalam satu ruang nama. Masalahnya ialah saya mempunyai AMyException yang sama dengan (dalam PHP) BAMyException (kerana skrip saya dipanggil B dalam ruang nama!). Apa yang saya perlu lakukan ialah menambah garis miring ke belakang (atau apa sahaja namanya) sebelum nama pengecualian untuk membetulkannya supaya ia kelihatan seperti ini: AMyException

    balas
    0
  • Batalbalas