首页 > 编程语言 >php异常处理

php异常处理

时间:2023-07-24 21:22:51浏览次数:36  
标签:Exception 错误 处理 捕获 exception getMessage php 异常

1、介绍

异常用于在指定的错误发生时改变脚本的正常流程。

PHP 5 提供了一种新的面向对象的错误处理方法。

异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。

2、抛出异常

throw new Exception("Value must be 1 or below");

当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 "catch" 代码块。

如果异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么将发生一个严重的错误(致命错误),并且输出 "Uncaught Exception" (未捕获异常)的错误消息。

3、捕获

// 在 try 块 触发异常
try
{
    checkNum(2);
    // 如果抛出异常,以下文本不会输出
    echo '如果输出该内容,说明 $number 变量';
}
// 捕获异常
catch(Exception $e)
{
    echo 'Message: ' .$e->getMessage();
}

4、自定义Exception类

class customException extends Exception
{
    public function errorMessage()
    {
        // 错误信息
        $errorMsg = '错误行号 '.$this->getLine().' in '.$this->getFile()
        .': <b>'.$this->getMessage().'</b> 不是一个合法的 E-Mail 地址';
        return $errorMsg;
    }
}

5、设置顶层异常处理器

set_exception_handler() 函数可设置处理所有未捕获异常的用户定义函数。

<?php
function myException($exception)
{
    echo "<b>Exception:</b> " , $exception->getMessage();
}
 
set_exception_handler('myException');
 
throw new Exception('Uncaught Exception occurred');
?>

 

标签:Exception,错误,处理,捕获,exception,getMessage,php,异常
From: https://www.cnblogs.com/wd404/p/17578393.html

相关文章

  • php文件上传
    1、前端<formaction="upload_file.php"method="post"enctype="multipart/form-data">    <labelfor="file">文件名:</label>    <inputtype="file"name="file"id="file">......
  • php 文件包含
    include和require除了处理错误的方式不同之外,在其他方面都是相同的:require生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。include生成一个警告(E_WARNING),在错误发生后脚本会继续执行。include'filename';或者require'filename'; ......
  • php cookie与session
    1、cookie1.1创建cookiesetcookie(name,value,expire,path,domain);注释:在发送cookie时,cookie的值会自动进行URL编码,在取回时进行自动解码。(为防止URL编码,请使用setrawcookie()取而代之。)setcookie("user","runoob",time()+3600);1.2获取cookie//输出coo......
  • 分享一个关于网页上无法复制内容的处理技巧
      最近有朋友吐槽CSDN连个框选代码、复制功能都要登录才能使用,之前也有听到过类似的吐槽,这对于很多面向百度开发的程序员并不友好,于是想了个办法。  以CSDN为例,当需要复制CSDN上的内容是,可以先在开发者工具的控制台中输入下面的代码执行一遍,就可以使用框选复制了:  doc......
  • Mybatis 多对一处理
    多对一处理:多个学生,对应一个老师对于学生而言,关联...多个学生关联一个老师(多对一)对于老师而言,集合,一个老师,有很多学生(一对多) 测试环境搭建1:导入lombok(不用lombok忽略)2:新建实体类Teacher,Student3:建立Mapper接口4:建立Mapper.xml文件5:在核心配置文件中绑定注册我们的......
  • sublime运行php文件
    sublime运行php文件使用sublime打开一个php文件然后Tools—>BuildSystem—>NewBuildSystem将以上打开的文件内容修改成以下内容:{"cmd":["C:/phpStudy/PHPTutorial/php/php-5.4.45/php.exe","$file"],"file_regex":"......
  • 编译期处理
    默认构造器publicclasstest{}编译classpublicclasstest{ publictest(){ super(); }}自动拆装箱泛型集合取值foreach循环枚举类try-with-resources匿名内部类......
  • 9个PHP库简介和下载
    9个非常有用的PHP类库,相信一定可以为你的WEB开发提供更好和更为快速的方法。 1.ReCAPTCHAThereCAPTCHA库让你可以为网站创建高级的CAPTCHA系统,这个系统其实是用来生成验证信息的,甚至包括语音验证。当然还有reCAPTCHA服务可以使用,其提供易用的免费API,值得在你的网站试试。......
  • PHP数组缓存:三种方式JSON、序列化和var_export的比较
    使用PHP的站点系统,在面对大数据量的时候不得不引入缓存机制。有一种简单有效的办法是将PHP的对象缓存到文件里。下面我来对这3种缓存方法进行说明和比较。第一种方法:JSONJSON缓存变量的方式主要是使用json_encode和json_decode两个php函数。json_encode可以将变量变成文本格式,这......
  • 视网膜New iPad与普通分辨率iPad页面的兼容处理
    一、这是篇经验分享 就算不是果粉也应该知道,iPad2与newiPad的重大区别之一就是显示屏的分辨率。newiPad显示屏被称之为“视网膜显示屏”,其设备分辨比(之前有详细介绍,点击这里查看)是iPad2的两倍。–iPadmini也是普通分辨比。 iPad2与newiPad同时显示一个页面,宽度都是1024像素......