try catch在PHP的使用

little bottle
發布: 2023-04-05 21:14:01
轉載
10840 人瀏覽過

1.try catch可以捕捉上一層throw的例外

2.finally是不管try或catch任何一塊有return, 最終都會執行的區塊

3.try也是可以捕獲call_user_func_array回呼函數類別內部的throw的異常

4.call_user_func_array只能回調類別的靜態方法,可以在這個靜態方法中進行new物件

5.在不自訂任何錯誤處理函數的情況下,try是不能捕獲php本身的錯誤的,包括notice warning error等級別

下面的程式碼是專案中的一個部分,經過了多層呼叫和回調


#
<?php
class Oss {
    public static function connect() {
    	throw new Exception("oss connect error");
    	return &#39;oss object&#39;;
    }
}
//调用三层
class S3{
	public static function connect() {
		//throw new Exception("s3 connect error");
    	return &#39;s3 object&#39;;
    }
}
//调用二层
function callReader($class,$url){
	try{
		$conn=call_user_func_array(array($class, "connect"),array());
		return $conn;
	}catch(Exception $e){
		throw $e;	
	}finally{
		//无论如何都会执行,在这记录日志
	}
}
//调用一层
function getMessage(){
	$conn=null;
	try {
	    $conn=callReader(&#39;Oss&#39;,"http://xxxx");
	} catch (Exception $e1) {
		$conn=callReader(&#39;S3&#39;,"http://xxxx");
	}
	return $conn;
}
//最先的入口
try{
	var_dump(getMessage());
}catch(Exception $e){}
登入後複製

【課程推薦:PHP影片教學】  

#

以上是try catch在PHP的使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:cnblogs.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板