php中的异常处理、错误的抛出及错误回调函数
一个例子:
Exception 类的结构:其中大部分方法都是 禁止改写的(final ) Exception { /* 属性 */ protected string $message ; protected int $code ; protected string $file ; protected int $line ; /* 方法 */ public __construct ([ string $message = "" [, int $code = 0 [, Exception $previous = null]]] ) final public string getMessage ( void ) //异常抛出的信息 final public Exception getPrevious ( void ) //前一异常 final public int getCode ( void ) //异常代码,这是用户自定义的 final public string getFile ( void ) //发生异常的文件路劲 final public int getLine ( void ) //发生异常的行 final public array getTrace ( void ) //异常追踪信息(array) final public string getTraceAsString ( void ) //异常追踪信息(string) public string __toString ( void ) //试图直接 将异常对象当作字符串使用时调用子函数的返回值 final private void __clone ( void ) //克隆异常对象时调用 } 扩展异常类 try-catch 可以有多个 catch 子句,从第一个 catch 子句开始,如果子句内的 异常变量 类型匹配 thrown 语句抛出的异常类型,则该子句会被执行而不再执行其他catch子句,否则继续尝试下一个 catch 子句,由于Exception 是所有 异常类的基类,因此抛出的异常都会与他匹配 ,如果需要根据不同异常类型使用不同的处理方法,应该将 Exception 类型的 catch 子句放到最后。 Exception 是所有异常的基类,可以根据实际需要扩展异常类
你可能会在 catch 子句中判断异常的类型,或者根据 code 等信息来决定是否处理异常,如果你卸载 catch 子句的代码无法适当的处理捕获的异常,你可以在 catch 子句内继续 抛出异常。 三、Exception 异常的回调函数 set_exception_handler(callback functionName) //发生 Exception 或其 子类的 异常是会调用此函数 function exceptionHandlerFun($errObj){ // Exception 异常的回调函数 只有一个参数,就是抛出的异常对象。 //....... } Exception 异常的回调函数并不能像 set_error_handler 的回调函数那样通过返回 true 来使异常被消除,即使回调函数处理了异常,后继代码也不会被继续执行,因此想继续执行后续代码必须使用 try-catch。 但是有一个例外:脚本结束回调函数可以被执行,抛出的异常即使没有被处理,该回调函数也是能被执行的。 register_shutdown_function(callback functionName[,argument1,argument2,...]); 例如:
因为 shutdownfunction() 在脚本结束时被执行,所以 这个回调函数之内可以调用脚本中任意位置的函数,即使该函数定义在 错误抛出位置之后(函数定义是在 脚本编译期完成的)。 四、trigger_error(string errorMsg[,int user_error_type]) 该函数用于主动触发一个错误: user_error_type 只能是 E_ALL、E_USER_ERROR、 E_USER_WARNING、 E_USER_NOTICE 或其组合的值。 set_error_handler(callback functionName[,user_error_type]); // 为 trigger_error() 设置一个回调函数来处理错误,包括系统抛出的错误和用户使用 trigger_error() 函数触发的错误。 可选参数 user_error_type : 如果设定此参数,则 trigger_error 抛出的错误类型符合 在user_error_type 的定义范围才能触发回调函数。 这个值的设置类似于 error_reporting() 函数 。 第一个参数(callbeck functionName): 一个函数名,该函数 可以有 5 个参数,其中前 2 个必选,依次是: trigger_error 抛出的 user_error_type、trigger_error 抛出的 errorMsg、抛出错误的文件的绝对路劲、抛出错误的行号、抛出错误时的上下文环境 (一个数组,包含了trigger_error() 所在作用域内的所有变量、函数、类等数据 ) 回调函数的返回值: 如果返回 false ,系统错误处理机制仍然继续抛出该错误,返回 true 或 无返回值 则消除错误。 trigger_error() 触发的错误不会被 try-catch 异常捕获语句捕获。 您可能感兴趣的文章: PHP 异常处理相关知识 使用php异常处理类Exception的例子 php中的异常处理、错误的抛出及错误回调函数 一个简单的php自定义异常类 学习php错误与异常设置 |

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Alipay Php ...

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

L'article examine l'ajout de fonctionnalités personnalisées aux cadres, en se concentrant sur la compréhension de l'architecture, l'identification des points d'extension et les meilleures pratiques pour l'intégration et le débogage.

L'article traite des fonctionnalités de sécurité essentielles dans les cadres pour se protéger contre les vulnérabilités, notamment la validation des entrées, l'authentification et les mises à jour régulières.
