国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP|異常的使用,異常子類化的最佳實踐

李濤 / 2104人閱讀

摘要:構造異常的子類。代碼的邏輯功能部分如何使用異常的子類文件權限或文件不存在文件損壞錯誤的文件格式后備捕捉器,正常情況下不應該被調用。這樣,可以在細化的子句中,針對不同的錯誤使用不同的恢復或失敗機制。參考深入,面向對象模式與實踐

構造異常的子類。
class XmlException extends Exception
{
    private $error;
    
    function __construct(LibXmlError $error) {
        $shortfile = basename($error->file);
        $msg = "[{$shortfile}, line {$error->line}, col {$error->column} {$error->message}]";
        $this->error = $error;
        parent::__construct(%msg, $error->code);
    }
    
    function getLibXmlError() {
        return $this->error
    }
}

class FileException extends Exception{}
class ConfException extends Exception{}
代碼的邏輯功能部分
// Conf Class
function __construct($file) {
    $this->file = $file;
    if (!file_exists($file)) {
        throw new FileException();
    }
    
    $this->xml = simplexml_load_file($file, null, LIBXML_NOERROR);
    if (!is_object($this->xml)) {
        throw new XmlException();
    }
    
    print gettype($this->xml);
    $matches = $this->xml->xpath("/conf");
    if (!count($matches)) {
        throw new ConfException();
    }
}

function write() {
    if (!is_writeable($this->file)) {
        throw new FileException("");
    }
    file_put_contents($this->file, $this->xml->asXML());
}
如何使用異常的子類?
class Runner 
{
    static function init() {
        try {
        
        } catch (FileException $e) {
            // 文件權限或文件不存在
        } catch (XmlException $e) {
            // XML文件損壞
        } catch (ConfException $e) {
            // 錯誤的XML文件格式
        } catch (Exception $e) {
            // 后備捕捉器,正常情況下不應該被調用。
        }
    }
}

這樣,可以在細化的catch子句中,針對不同的錯誤使用不同的恢復或失敗機制。可以決定停止執行程序、記錄錯誤、并繼續執行程序,或顯式地再次拋出錯誤。

try {
    // ...
} catch (FileException $e) {
    throw $e;
}

參考

深入PHP,面向對象、模式與實踐

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21655.html

相關文章

  • PHP核心技術與最佳實踐(第一章 面向對象思想核心概念)

    摘要:現代的面向對象的思想不強調為真實世界建模變得更加理性化一些,把目標放在解耦上。各種語言中的多態多態確切的含義是同一類的對象收到相同消息時,會得到不同的結果。小結本章主要介紹面向對象思想的程序的組成元素類和對象。 第一章 面向對象思想的核心概念 showImg(https://segmentfault.com/img/bVNfjM?w=673&h=334); showImg(https:...

    dreamGong 評論0 收藏0
  • 淺析Java異常處理機制

    摘要:關于異常處理的文章已有相當的篇幅,本文簡單總結了的異常處理機制,并結合代碼分析了一些異常處理的最佳實踐,對異常的性能開銷進行了簡單分析。是程序正常運行中,可以預料的意外情況,應該被捕獲并進行相應處理。 關于異常處理的文章已有相當的篇幅,本文簡單總結了Java的異常處理機制,并結合代碼分析了一些異常處理的最佳實踐,對異常的性能開銷進行了簡單分析。博客另一篇文章《[譯]Java異常處理的最...

    NSFish 評論0 收藏0
  • 貓頭鷹深夜翻譯:JAVA中異常處理最佳實踐

    摘要:無需檢查的異常也是的子類。從低層拋出的需檢查異常強制要求調用方捕獲或是拋出該異常。當前執行的線程將會停止并報告該異常。單元測試允許我在使用中查看異常,并且作為一個可以被執行的文檔來使用。不要捕獲最高層異常繼承的異常同樣是的子類。 前言 異常處理的問題之一是知道何時以及如何去使用它。我會討論一些異常處理的最佳實踐,也會總結最近在異常處理上的一些爭論。 作為程序員,我們想要寫高質量的能夠解...

    W_BinaryTree 評論0 收藏0
  • Java 異常處理 9 個最佳實踐

    摘要:異常處理的個最佳實踐原文地址翻譯出處在中,異常處理是個很麻煩的事情。使用描述性消息拋出異常這個最佳實踐背后的想法與前兩個類似。當你以錯誤的格式提供時,它將被類的構造函數拋出。類提供了特殊的構造函數方法,它接受一個作為參數。 Java 異常處理的 9 個最佳實踐 原文地址:https://dzone.com/articles/9-...翻譯出處:https://www.oschina.n...

    sihai 評論0 收藏0
  • Java異常處理最佳實踐

    摘要:然而,我更傾向于使用來單元測試來文檔化異常。單元測試允許我在使用中查看異常,并且作為一個可以被執行的文檔來使用。通過為異常編寫單元測試,你不僅可以記錄異常如何觸發,還可以使你的代碼在經過這些測試后更加健壯。 本文是關于 Exception 處理的一篇不錯的文章,從 Java Exception 的概念介紹起,依次講解了 Exception 的類型(Checked/Unchecked),...

    mayaohua 評論0 收藏0

發表評論

0條評論

李濤

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<