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

在程序开发中,错误处理这一块是非常重要的,今天本文章就来告诉他关于在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(); // 可输出的字符串
    
}
?>

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;;
?>

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;;
?>

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;;
?>

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;;
?>

6、显示警告或错误信息

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

?>

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;
?>


本文链接:

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

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.