[PHP]22.異常錯誤處理-try{}catch{}

  • 1696
  • 0
  • php
  • 2022-12-03

文、意如

1.製作異常錯誤

案例一:當購買數量大於庫存100時,拋出異常錯誤訊息

<?php
function checkstock($stock){
	if($stock>100){
		throw new Exception("購買數量大於庫存100");
	}
	return true;
}

checkstock(101);

 

參考

 

2.捕捉例外錯誤:try{}catch{}

<?php

function checkstock($stock){
	if($stock>100){
		throw new Exception("購買數量大於庫存100");
	}
	return true;
}

try {
    checkstock(19);
    echo '安全庫存範圍(數量小於庫存100)';
}
catch(Exception $e) {
    echo 'Message: ' .$e->getMessage();
}

 

 

 參考 

3.讀取檔案目錄,當有讀到時印出該目錄底下的資料夾名稱,如果讀不到顯示錯誤訊息

步驟一: 開啟目錄,並顯示資料夾名稱


<?php
//打開目錄
$dir = opendir("C:\Yiru");


//列出 Yiru 目錄中的文件
//readdir($dir)讀取檔案目錄
while (($file = readdir($dir)) !== false)
{
 echo "filename: " . $file . "<br />";
}

?> 

 

參考

步驟二:

當目錄不存在時,顯示錯誤訊息 (使用file_exists)判斷資料夾是否存在

<?php
$mypath="C:\YiruA";
$myfile=file_exists($mypath); //判斷資料夾是否存在(1代表true存在)
$dir=opendir($mypath); //開啟目錄


if($myfile){
	while(($file=readdir($dir))!==false){ //讀取檔案名
		echo "檔案名稱".$file."<br>";
	}
	
}else{
	echo "資料夾不存在";
}

參考

步驟三:使用trycatch

<?php
$mypath = "C:\YiruA";
$myfile = file_exists($mypath); //判斷資料夾是否存在(1代表true存在)
$dir = opendir($mypath); //開啟目錄

try {
    if ($myfile) {
        while (($file = readdir($dir)) !== false) { //讀取檔案名
            echo "檔案名稱" . $file . "<br>";
        }
    } else {
        throw new Exception('資料夾不存在');    //不存在的話就丟出例外
    }                                    //試圖開啟不存在的資料夾
} catch (Exception $ex)                                            //捕捉可能產生的例外
{
    echo '錯誤訊息:' . $ex->getMessage() . '<br>';        //顯示例外的錯誤訊息
    echo '錯誤代碼:' . $ex->getCode() . '<br>';             //顯示例外的錯誤代碼
    echo '檔案路徑:' . $ex->getFile() . '<br>';                 //顯示例外的檔案路徑
    echo '錯誤行數:' . $ex->getLine() . '<br>';             //顯示例外的錯誤行數
}

 

參考

 

Yiru@Studio - 關於我 - 意如