年年有"余"

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1861|回复: 0

PHP异常处理自定义异常类简单实现

[复制链接]
  • TA的每日心情

    2024-10-15 10:05
  • 签到天数: 372 天

    [LV.9]以坛为家II

    发表于 2016-1-3 22:48:19 | 显示全部楼层 |阅读模式
    [PHP] 纯文本查看 复制代码
    <?php
            // 设置问题直接在当前页面打印
            set_error_handler(function($type, $message, $file, $line){
                    echo "<pre><font color='red'>第{$line}行,$message</font></pre>";
            });
                    
            // 自定义异常类,承继自系统异常Exception类
            class SAException extends Exception{
                    // 重写构造方法,注意一定要先调用父类的构造方法
                    function __construct($message){
                            parent::__construct($message);
                    }
                    function change(){
                            echo "换上备胎,继续开车上班<br/>";
                    }
            }
            echo "早上起床<br/>";
            // 试着执行try中的代码,如果没有问题,跳过catch继续往后执行
            try{
                    echo "开车上班<br/>";
                    // 抛出异常,将异常对象转给catch中的Exception类
                    throw new SAException("车子爆胎");
                    // 后续的代码不再执行,直接跳转到catch中
                    echo "路况很好<br/>";
            }catch(SAException $e){
                    // Excetion类中的getmessage()方法获取异常消息
                    echo $e->getmessage()."<br/>";
                    $e->change();
            }
            echo "到公司开始工作<br/>";
    执行结果:
    早上起床
    开车上班
    车子爆胎
    换上备胎,继续开车上班
    到公司开始工作
    相关链接:http://www.yusian.com/thread-11051-1-1.html
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|小黑屋|Archiver|iOS开发笔记 ( 湘ICP备14010846号 )

    GMT+8, 2024-11-21 23:38 , Processed in 0.044133 second(s), 19 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表