异常处理类

<?php
class Exception
{
    protected $message = 'Unknown exception';   // 异常信息
    protected $code = 0;                        // 用户自定义异常代码
    protected $file;                            // 发生异常的文件名
    protected $line;                            // 发生异常的代码行号

    function __construct($message = null, $code = 0);

    final function getMessage();                // 返回异常信息
    final function getCode();                   // 返回异常代码
    final function getFile();                   // 返回发生异常的文件名
    final function getLine();                   // 返回发生异常的代码行号
    final function getTrace();                  // backtrace() 数组
    final function getTraceAsString();          // 已格成化成字符串的 getTrace() 信息

    function __toString();                      // 可输出的字符串
}
?>

使用方法

<?php
try
{
    $error = '抛出异常信息,并且跳出try块<br/>';
    if(is_dir('./test'))
    {
        echo '检测到../ch16是一个目录';
        echo '<br/>';
        echo '可能继续做其他一些操作';
        echo '<br/>';
        echo '....';
        echo '<br/>';
    }
    else
    {
        throw new Exception($error,12345);
    }
    echo '上面throw异常的话,这行代码不会执行,转而执行catch块<br/>';
}
catch(Exception $e)
{
    echo '捕获异常: ' . $e->getMessage() . "<br/>错误代码:" . $e->getCode().'<br/>';    //显示$error和123456
    echo '<br/>';
}

echo '继续执行';
?>

捕获异常信息

<?php
$file = './test/readme.txt';

try
{
    if(is_dir($file))
    {
        echo '检测到目录';
    }
    else
    {
        //创建异常对象,错误信息将有Exception类的成员函数getMessage()返回
        throw new Exception('未找到该目录或文件');
    }
}
catch(Exception $e)
{
    echo '捕获异常: ' . $e->getMessage();
    echo '<br/>===============================';
    echo '<br/>';
}

echo '程序执行完毕';
?>

捕获发生错误的文件

<?php
$file = './test/readme.txt';

try
{
    if(is_dir($file))
    {
        echo '检测到目录';
    }
    else
    {
        //创建异常对象,错误信息将有Exception类的成员函数getMessage()返回
        throw new Exception('未找到该目录或文件');
    }
}
catch(Exception $e)
{
    echo '捕获异常: ' . $e->getMessage();
    echo '<br/><br/>';
    echo '错误所在文件:'. $e->getFile();
    echo '<br/>===============================';
    echo '<br/>';
}

echo '程序执行完毕';
?>

捕获错误的行号

<?php
$file = './test/readme.txt';

try
{
    if(is_dir($file))
    {
        echo '检测到目录';
    }
    else
    {
        //创建异常对象,错误信息将有Exception类的成员函数getMessage()返回
        throw new Exception('未找到该目录或文件');
    }
}
catch(Exception $e)
{
    echo '捕获异常: ' . $e->getMessage();
    echo '<br/><br/>';
    echo '错误所在文件:'. $e->getFile();
    echo '<br/><br/>';
    echo '错误所在行号:'. $e->getLine();
    echo '<br/>===============================';
    echo '<br/>';
}

echo '程序执行完毕';
?>
最后修改:2015 年 08 月 27 日
如果觉得我的文章对你有用,请随意赞赏