php 異常處理 throw catch

<?php
    function div($dividend, $divisor){
        try{
            echo "$dividend 除以 $divisor ->/n";
            if($divisor == 0){
                throw new Exception('除數不能爲零', 101);
            }
            $result = $dividend / $divisor;
            echo "結果爲 $result/n/n";
        }
        catch(Exception $e){  # 類型指示 Exception
            $msg = $e->getMessage();
            $code = $e->getCode();
            $file = $e->getFile();
            $line = $e->getLine();
            $trace = $e->getTrace();  // 註釋
            $traceAsString = $e->getTraceAsString();
            echo "錯誤: $code, $msg/n";
            echo "錯誤所在文件: $file/n";
            echo "錯誤所在行號: $line/n";
            echo "回退路徑數組: $trace/n";
            echo "回退路徑字符串: $traceAsString/n/n";
        }

    }

    div(100, 10);
    div(100, 0);
    div(100,30);
    div(100, -10);
?>
# $e爲所捕獲到的異常對象
# Exception 類的構造函數接受兩個可選參數,一個消息,一個代碼
# throw 是一個語言結構而非一個函數,但是必須給它傳遞一個值
# 一條throw語句會使程序流程從try代碼塊中退出
#  php 內置了一個異常類 Exception,所有可能被拋出的異常
#  都必須是該類的對象或者該類的子類的對象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章