加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

php异常处理你真的知道吗?详解php异常处理机制

发布时间:2022-04-18 14:22:20 所属栏目:语言 来源:互联网
导读:PHP中的异常处理机制是比较难理解的一个知识点,很多朋友在学习过程中,对于异常处理有些不明白。为了帮助大家更好的学习和理解PHP中的异常处理机制,文本会详细介绍异常处理机制,有这方面学习需求的朋友可以看一下。 1、异常概述 异常(Exception)是一种
        PHP中的异常处理机制是比较难理解的一个知识点,很多朋友在学习过程中,对于异常处理有些不明白。为了帮助大家更好的学习和理解PHP中的异常处理机制,文本会详细介绍异常处理机制,有这方面学习需求的朋友可以看一下。
 
        1、异常概述
 
        异常(Exception)是一种错误处理机制,用于在指定的错误发生时改变脚本的正常流程。
 
        当异常被触发时,当前代码状态被保存,代码执行被切换到预定义的异常处理器函数(如果有)
 
        根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本
 
        2、异常的基本使用
 
        当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 "catch" 代码块。
 
        如果异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么将发生一个严重的错误(致命错误),并且输出 "Uncaught Exception" (未捕获异常)的错误消息。
        尝试抛出一个异常,同时不去捕获它
 
//create function with an exception
function checkNum($number){
 if($number>1){
  throw new Exception("Value must be 1 or below");
 }
}
//trigger exception
checkNum(2);
        上面的代码会获得类似这样的一个错误:
 
Fatal error: Uncaught exception 'Exception' with message 'Value must be 1 or below' in C:webfoldertest.php:6
Stack trace: #0 C:webfoldertest.php(12):checkNum(28) #1 {main} thrown in C:webfoldertest.php on line 6
 
        注意:PHP默认是警告模式,如果需要对系统错误使用异常处理机制,则要在处理代码之前设置错误处理模式
 
set_error_handler(function(){
 throw new Exception('错误!');
});
        3、 创建自定义的异常处理器
 
        创建一个专门的类,当 PHP 中发生异常时,可调用其函数。该类必须是 exception 类的一个扩展。这个自定义的exception 类继承了 PHP 的 exception 类的所有属性,可向其添加自定义的函数。
 
class customException extends Exception{
 public function errorMessage(){
  return 'Error on line '.$this->getLine().' in '.$this->getFile().': <b>'.$this->getMessage().'</b> is not a valid E-Mail address';
 }
}
$email = "someone@example...com";
try{
 //使用PHP过滤器验证邮箱有效性
 if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE){
  throw new customException($email);

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读