<?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,所有可能被拋出的異常
# 都必須是該類的對象或者該類的子類的對象