首頁  >  文章  >  後端開發  >  try catch在PHP的使用

try catch在PHP的使用

little bottle
little bottle轉載
2019-04-16 14:48:0210838瀏覽

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中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除