PHP中定义的一些内置错误
从PHP7开始,便引入了Error并定义了一些内置错误。在这里总结一些所定义的内置错误,也算是有个记录。
ArithmeticError:Error子类,在执行数学运算发生错误时抛出。PHP7中这些错误包括执行负数位移操作、以及调用intp()导致的超出整数范围之外的值。
AssertionError:Error子类,通过assert发出的断言失败时抛出异常。只有ini设置zend.assertions、assert.exception为1并且启用断言时,执行assert()时才会在为false时抛出AssertionError异常。
ParseError:Error子类,当解析PHP代码发生错误时会抛出异常。
TypeError:Error子类,当传递给函数的参数类型与它对应的声明参数类型不匹配;从函数返回的值与声明的函数返回类型不匹配以及在严格模式下将无效数量的参数传递给内置的PHP函数时会抛出异常。
pisionByZeroError:ArithmeticError子类,当分母为0或者当0被用作模运算符(%)时,从intp()中抛出异常。在除法(/)操作符中使用0只会发出警告,如果分子为0结果为NAN,如果分子非0则结果为INF。
ArgumentCountError:PHP7.1起,TypeError子类,当传递给用户定义的函数或方法少于定义的参数数量时抛出异常。
<?php declare(strict_types=1); function foo(string $arg){ return 'test' . $arg;; } function testArithmeticError(){ try { $value = 1 << -1; } catch (ArithmeticError $e) { echo 'show ArithmeticError:'; echo $e->getMessage(); } } function testAssertionError(){ ini_set('zend.assertions', 1); ini_set('assert.exception', 1); try { assert(1>2); } catch (AssertionError $e) { echo 'show AssertionError:'; echo $e->getMessage(); } } function testParseError(){ try { eval('asset(1>2)'); } catch (ParseError $e) { echo 'show ParseError:'; echo $e->getMessage(); } } function testTypeError(){ try { foo(123); } catch (TypeError $e) { echo 'show TypeError:'; echo $e->getMessage(); } } function testpisionByZeroError(){ try{ 1%0; }catch(pisionByZeroError $e){ echo 'show pisionByZeroError:'; echo $e->getMessage(); } } function testArgumentCountError(){ try{ foo(); }catch(ArgumentCountError $e){ echo 'show ArgumentCountError:'; echo $e->getMessage(); } } //foo("ArithmeticError")(); //foo("AssertionError")(); //foo("ParseError")(); //foo("TypeError")(); //foo("pisionByZeroError")(); //foo("ArgumentCountError")(); ?>
相关推荐:
Atas ialah kandungan terperinci PHP中定义的一些内置错误. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP ialah bahasa pembangunan web popular yang telah digunakan sejak sekian lama. Kelas PDO (Objek Data PHP) yang disepadukan dalam PHP adalah cara biasa untuk kita berinteraksi dengan pangkalan data semasa pembangunan aplikasi web. Walau bagaimanapun, masalah yang sering dihadapi oleh sesetengah pembangun PHP ialah apabila menggunakan kelas PDO untuk berinteraksi dengan pangkalan data, mereka menerima ralat seperti ini: PHPFatalerror:CalltoundefinedmethodPDO::prep

Sangat biasa untuk menggunakan axios dalam aplikasi Vue ialah klien HTTP berasaskan Promise yang boleh digunakan dalam penyemak imbas dan Node.js. Semasa proses pembangunan, mesej ralat "Uncaught(inpromise)Error: Requestfailedwithstatuscode500" kadangkala muncul untuk pembangun, mesej ralat ini mungkin sukar difahami dan diselesaikan. Artikel ini akan meneroka perkara ini

Selesaikan masalah "error:incompletetypeisnotallowed" dalam kod C++ Semasa proses pengaturcaraan C++, anda kadangkala menghadapi beberapa ralat kompilasi Salah satu ralat biasa ialah "error:incompletetypeisnotallowed". Ralat ini biasanya disebabkan oleh operasi pada jenis yang tidak lengkap. Artikel ini akan menerangkan punca ralat ini dan menyediakan beberapa penyelesaian. Pertama sekali, saya

Penyelesaian kepada "0271: ralat jam masa nyata" yang tidak boleh dihidupkan: 1. Tekan F1, dan dalam antara muka yang muncul, alihkan bar pilihan ke item ketiga "Tarikh/Masa" 2. Tukar masa sistem secara manual ke masa semasa; 3. Tekan F10 dan pilih ya dalam kotak dialog pop timbul 4. Buka semula buku nota untuk but seperti biasa.

Selesaikan masalah "error:expectedinitializerbefore'datatype'" dalam kod C++ Dalam pengaturcaraan C++, kadangkala kita menghadapi beberapa ralat kompilasi semasa menulis kod. Ralat ini biasanya berlaku dalam pengisytiharan berubah atau definisi fungsi dan boleh menyebabkan atur cara gagal untuk menyusun dengan betul atau

Bagaimana untuk menyelesaikan PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectory Dalam proses menggunakan pembangunan PHP, kita sering menghadapi beberapa masalah pengendalian fail, salah satunya ialah "PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectory"

Apabila menulis aplikasi web menggunakan PHP, pangkalan data MySQL sering digunakan untuk menyimpan data. PHP menyediakan cara untuk berinteraksi dengan pangkalan data MySQL yang dipanggil MySQLi. Walau bagaimanapun, kadangkala apabila menggunakan MySQLi, anda akan menemui mesej ralat, seperti yang ditunjukkan di bawah: PHPFatalerror:Calltoundefinedfunctionmysqli_connect() Mesej ralat ini bermakna PHP tidak dapat mencari saya

Apabila menggunakan PHP untuk pembangunan aplikasi web, anda selalunya perlu menggunakan pangkalan data. Apabila menggunakan pangkalan data, mesej ralat adalah sangat biasa. Antaranya, PHPFatalerror: Calltoamemberfunctionfetch() ialah ralat yang agak biasa berlaku apabila menggunakan PDO untuk menanyakan pangkalan data. Jadi, apa yang menyebabkan ralat ini dan bagaimana untuk menyelesaikannya? Artikel ini akan menerangkannya secara terperinci untuk anda. 1. Punca kesilapan
