Heim > php教程 > php手册 > php 错误处理与异常处理方法与实例教程

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

WBOY
Freigeben: 2016-05-25 16:51:31
Original
1593 Leute haben es durchsucht

在程序开发中,错误处理这一块是非常重要的,今天本文章就来告诉他关于在php开发中,错误处理函数并且举例说明错误处理的重要性。

1、内置异常处理类、2、捕获并处理异常的示例、3、exception类的成员函数getmessage()、4、exception类的成员函数getfile()、5、exception类的成员函数getline()、6、显示警告或错误信息、7、自定义错误处理函数。

1,内置异常处理类

<?php
class exception {
    protected $message = &#39;unknown exception&#39;; // 异常信息
    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(); // 可输出的字符串
    
}
?>
Nach dem Login kopieren

2、捕获并处理异常的示例

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

3、exception类的成员函数getmessage()

<?php
$file = &#39;./test/readme.txt&#39;;
try {
    if (is_dir($file)) {
        echo &#39;检测到目录&#39;;
    } else {
        //创建异常对象,错误信息将有exception类的成员函数getmessage()返回
        throw new exception(&#39;未找到该目录或文件&#39;);
    }
}
catch(exception $e) {
    echo &#39;捕获异常: &#39; . $e->getmessage();
    echo &#39;<br/>===============================&#39;;
    echo &#39;<br/>&#39;;
}
echo &#39;程序执行完毕&#39;;
?>
Nach dem Login kopieren

4、exception类的成员函数getfile()

<?php
$file = &#39;./test/readme.txt&#39;;
try {
    if (is_dir($file)) {
        echo &#39;检测到目录&#39;;
    } else {
        //创建异常对象,错误信息将有exception类的成员函数getmessage()返回
        throw new exception(&#39;未找到该目录或文件&#39;);
    }
}
catch(exception $e) {
    echo &#39;捕获异常: &#39; . $e->getmessage();
    echo &#39;<br/><br/>&#39;;
    echo &#39;错误所在文件:&#39; . $e->getfile();
    echo &#39;<br/>===============================&#39;;
    echo &#39;<br/>&#39;;
}
echo &#39;程序执行完毕&#39;;
?>
Nach dem Login kopieren

5、exception类的成员函数getline()

<?php
$file = &#39;./test/readme.txt&#39;;
try {
    if (is_dir($file)) {
        echo &#39;检测到目录&#39;;
    } else {
        //创建异常对象,错误信息将有exception类的成员函数getmessage()返回
        throw new exception(&#39;未找到该目录或文件&#39;);
    }
}
catch(exception $e) {
    echo &#39;捕获异常: &#39; . $e->getmessage();
    echo &#39;<br/><br/>&#39;;
    echo &#39;错误所在文件:&#39; . $e->getfile();
    echo &#39;<br/><br/>&#39;;
    echo &#39;错误所在行号:&#39; . $e->getline();
    echo &#39;<br/>===============================&#39;;
    echo &#39;<br/>&#39;;
}
echo &#39;程序执行完毕&#39;;
?>
Nach dem Login kopieren

6、显示警告或错误信息

<?php
error_reporting(e_warning | e_error); //显示警告和错误信息
echo $uvar; //这里产生注意信息,但不会显示出来
callfunc(); //这里产生一个致命错误,并且会显示出来

?>
Nach dem Login kopieren

7、自定义错误处理函数。

<?php
set_error_handler(&#39;myhandler&#39;); //自定义错误处理函数
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;
?>
Nach dem Login kopieren


本文链接:

收藏随意^^请保留教程地址.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage