美文网首页
php自动义异常类

php自动义异常类

作者: 路过的人儿 | 来源:发表于2017-11-21 17:09 被阅读0次

几种php异常类的案例

<?php

/**
 *
 * 自定义一个异常处理类
 */

class MyException extends Exception
{
    // 重定义构造器使 message 变为必须被指定的属性
    public function __construct($message, $code = 0) {
        // 自定义的代码

        // 确保所有变量都被正确赋值
        parent::__construct($message, $code);
    }

    // 自定义字符串输出的样式 */
    public function __toString() {
        return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
    }

    public function customFunction() {
        echo "A Custom function for this type of exception\n";
    }
}
// 例子 1:抛出自定义异常,但没有默认的异常
echo ' 例子 1', '<br>';
try {
    // 抛出自定义异常
    throw new MyException('1 is an invalid parameter', 5);
} catch (MyException $e) {      // 捕获异常
    echo "Caught my exception\n", $e;
    $e->customFunction();
} catch (Exception $e) {        // 被忽略
    echo "Caught Default Exception\n", $e;
}
// 执行后续代码
// 例子 2: 抛出默认的异常  但没有自定义异常
echo '<br>', ' 例子 2:', '<br>';
try {
    // 抛出默认的异常
    throw new Exception('2 isnt allowed as a parameter', 6);
} catch (MyException $e) {      // 不能匹配异常的种类,被忽略
    echo "Caught my exception\n", $e;
    $e->customFunction();
} catch (Exception $e) {// 捕获异常
    echo "Caught Default Exception\n", $e;
}
// 执行后续代码
// 例子 3: 抛出自定义异常 ,使用默认异常类对象来捕获
echo '<br>', ' 例子 3:', '<br>';
try {
    // 抛出自定义异常
    throw new MyException('3 isnt allowed as a parameter', 6);
} catch (Exception $e) {        // 捕获异常
    echo "Default Exception caught\n", $e;
}

// 执行后续代码
// 例子 4
echo '<br>', ' 例子 4:', '<br>';
try {
    echo 'No Exception ';
} catch (Exception $e) {        // 没有异常,被忽略
    echo "Default Exception caught\n", $e;
}

// 执行后续代码

相关文章

网友评论

      本文标题:php自动义异常类

      本文链接:https://www.haomeiwen.com/subject/fymwvxtx.html