服务报价 | 域名主机 | 网络营销 | 软件工具| [加入收藏]
 热线电话: #
当前位置: 主页 > php教程 > php教程 >

php错误处理与异常处理方法与实例

时间:2016-02-03 18:50来源: 作者: 点击:
本文章就来告诉他关于在php开发中,错误处理函数并且举例说明错误处理的重要性。 1、内置异常处理类、2、捕获并处理异常的示例、3、exception类的成员函数getmessage()、4、exception类的成
本文章就来告诉他关于在php开发中,错误处理函数并且举例说明错误处理的重要性。
 
1、内置异常处理类、2、捕获并处理异常的示例、3、exception类的成员函数getmessage()、4、exception类的成员函数getfile()、5、exception类的成员函数getline()、6、显示警告或错误信息、7、自定义错误处理函数。
 
1,内置异常处理类
 
 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();                      // 可输出的字符串 
2、捕获并处理异常的示例
 
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 '继续执行'; 
3、exception类的成员函数getmessage()
 
$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 '程序执行完毕'; 
4、exception类的成员函数getfile()
 
$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 '程序执行完毕'; 
  
5、exception类的成员函数getline()
 
 $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 '程序执行完毕'; 
6、显示警告或错误信息
 
 error_reporting(e_warning | e_error);    //显示警告和错误信息 
echo $uvar;                        //这里产生注意信息,但不会显示出来 
callfunc();                            //这里产生一个致命错误,并且会显示出来 
 // 7、自定义错误处理函数。 
 set_error_handler('myhandler');     //自定义错误处理函数 
function myhandler($code, $msg, $file, $line) 
    echo "<br/>"; 
    echo "程序 <b>$file</b> 执行过程中,在第 <b>$line</b> 行,产生一个错误。"; 
    echo "<br/>"; 
    echo "错误代码为:<b>$code</b>, 错误的原因是: <b>$msg</b>"; 
echo $uvar; 
(责任编辑:最模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容