PHP出現異常

這篇文章將為大家詳細講解有關PHP出現異常,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

目前成都創(chuàng)新互聯公司已為1000+的企業(yè)提供了網站建設、域名、網站空間、網站托管運營、企業(yè)網站設計、玉田網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

PHP出現異常

<?php
/****************************************************
 * php處理異常
 * try中不主動throw,會先出現PHP的系統(tǒng)錯誤
 ****************************************************/
header("content-type:test/html:charset=utf-8");
error_reporting(-1);
try {
    $num1 = 3;
    $num2 = 0;
    if ($num2 == 0) {
        throw new Exception("自定義錯誤");
    } else {
        $res = $num1 / $num2;
    }

} catch (Exception $e) {
    echo $e->getMessage();
    // die(); // 終止異常
}
/******************************************************
 * php+MySQL+pdo
 *****************************************************/
try {
    $pdo = new PDO("mysql:host=localhost;dbname=mysql", "root", "");
} catch (PDOException $e) {
    echo $e->getMessage();
    // die(); // 終止異常
}
/******************************************************
 * php+文件異常
 *****************************************************/

/**
 * PHP 讀取大文件 SplFileObject :
 * https://blog.csdn.net/ekliu/article/details/8855907
 */
// SqlFileObject相對于傳統(tǒng)的open($filename, 'r')產生的對象的優(yōu)點在于不需要打開文件句柄  不需要關閉句柄更加的方便
$handle = new SplFileObject("sid_list.txt");
while (!$handle->eof()) {
    $item = $handle->fgets();
}

try {
    $pdo = new SplFileObject("text.txt", "r");
    echo "read File";
} catch (Exception $e) {
    echo $e->getMessage();
    // die(); // 終止異常
}
/******************************************************
 * php異常 嵌套
 *****************************************************/
try {
    throw new Exception("測試異常1");
} catch (Exception $e) {
    echo $e->getMessage();
    // die(); // 終止異常
    try {
        throw new Exception("測試異常2");
    } catch (Exception $e) {
        echo $e->getMessage();
    }
}

/******************************************************
 * php異常 自定義異常封裝
 *****************************************************/
class MyException extends Exception
{
    public function __construct($message = "", $code = 0, $previous = null)
    {
        parent::__construct($message, $code, $previous);
    }

    public function __toString()
    {
        $message = "<h3>出現異常,如下:</h3>";
        $message .= "<p>" . __CLASS__ . "[{$this->code}:{$this->message}]</p>";
        return $message;
    }

    /****************自定義異常方法***************/
    public function test()
    {
        echo "這是自定義錯誤";
    }

    public function stop()
    {
        exit("異常 end...");
    }
}

// 開始調用 MyException
try {
    echo "出現異常啦";
    throw new MyException("測試自定義異常", 3);
} catch (MyException $e) {
    echo $e->getMessage();
}

// 嵌套使用 MyException 與 Exception (沒有順序)
try {
    throw new MyException("測試自定義異常");
} catch (Exception $e) {
    echo $e->getMessage();
} catch (MyException $e) {
    echo $e->getMessage();
}

/******************************************************
 * php異常 自定義異常封裝    文件
 *****************************************************/
class FileException extends Exception
{
    public function getDetails()
    {
        switch ($this->code) {
            case 0:
                return "沒有提供文件";
                break;
            case 1:
                return "文件不存在";
                break;
            case 2:
                return "不是一個文件";
                break;
            case 3:
                return "文件不可寫";
                break;
            case 4:
                return "非法文件的操作模式";
                break;
        }
    }
}

class WriteData
{
    private $_message = "";
    private $_fp = null;

    public function __construct($filename = null, $mode = "w")
    {
        $this->_message = "文件:{$filename} ; 模式:{$mode}";
        if (empty($filename)) throw new FileException($this->_message, 0);
        if (!file_exists($filename)) throw new FileException($this->_message, 1);
        if (!is_file($filename)) throw new FileException($this->_message, 2);
        // is_writable — 判斷給定的文件名是否可寫
        if (!is_writable($filename)) throw new FileException($this->_message, 3);
        if (!in_array($mode, array("w", "w+", "a", "a
        +"))) throw new FileException($this->_message, 4);

        $this->_fp = fopen($filename, $mode);
    }

    public function write($data)
    {
        if (@!fwrite($this->_fp, $data . PHP_EOL)) throw new FileException($this->_message, 5);
    }

    public function close()
    {
        if ($this->_fp) {
            if (!fclose($this->_fp)) throw new FileException($this->_message, 6);
            $this->_fp = null;

        }
    }

    public function __destruct()
    {
        $this->close();
    }
}

php的框架有哪些

php的框架:1、Laravel,Laravel是一款免費并且開源的PHP應用框架。2、Phalcon,Phalcon是運行速度最快的一個PHP框架。3、Symfony,Symfony是一款為Web項目準備的PHP框架。4、Yii,Yii是一款快速、安全和專業(yè)的PHP框架。5、CodeIgniter,CodeIgniter是一款非常敏捷的開源PHP框架。6、CakePHP,CakePHP是一款老牌的PHP框架。7.Kohana,Kohana是一款敏捷但是功能強大的PHP框架。

關于“PHP出現異?!边@篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

標題名稱:PHP出現異常
分享鏈接:http://bm7419.com/article16/geisgg.html

成都網站建設公司_創(chuàng)新互聯,為您提供電子商務、網站設計公司、外貿建站、Google、企業(yè)網站制作、

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

小程序開發(fā)