PHP 异常处理

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

当异常被触发时,通常会发生:
    •当前代码状态被保存
    •代码执行被切换到预定义的异常处理器函数
    •根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本

基本用法

<?php 
    function checkNum($num)            
    {
        if ($num > 1) {
            # 新建异常信息
            throw new Exception("Value must be 1 or below");
        }
        return true;
    }

    try {
        checkNum(3); // 触发异常
        echo "如果你看到这条信息,证明num小于或等于1";
    } catch (Exception $e) { // 捕获异常
        echo "Message:" . $e -> getMessage(); // 显示异常信息
    } finally { // 触发异常与否,都会执行
        echo "<br>finally...";
    }   
 ?>

自定义Exception类

<?php 
    /**
    * 自定义customException类继承Exception类
    */
    class customException extends Exception
    {
        // 自定义函数返回错误信息
        public function errorMessage()
        {
            $errMsg = "Error on line: " . $this -> getLine() . " in " . $this -> getFile()
            . ": <b>" . self::getMessage() . "</b> is not  a valid E-mail address";
            return $errMsg;
        }
    }

    // set_exception_handler("exception_handler"); // 设置顶层异常处理器

    $email = "[email protected]";

    try {
        if (filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE) { // 判断是否是有效邮箱地址
            throw new customException($email); // 调用自己定义的异常类           
        } else {
            echo $email . ' is a valid address<br>';
        }

    } catch (customException $e) {
        echo $e -> errorMessage() . "<br>";// 调用自己定义的错误提示方法提示错误信息  
    }

    try {
        if (strpos($email, "example") !== FALSE) {
            throw new Exception("$email is an example E-mail");
        }
    } catch (Exception $e1) {
        echo $e1 -> getMessage();
    }
 ?>

猜你喜欢

转载自blog.csdn.net/liangshilin/article/details/78197812
今日推荐