php拋出異常Exception和\Exception使用區別

php拋出異常Exception和\Exception使用區別

沒有定義命名空間的情況下 , Exception和\Exception 均可正常執行拋出異常;
定義命名空間的情況 , Exception 會在定義的命名空間下找對應的異常類 , 如果沒有定義異常類 , 則會報錯 ;
定義命名空間的情況 , \Exception 會按照php默認的異常類執行拋出異常 ;

建議:  拋出異常 使用 \Exception !


 

#1: 沒有定義命名空間 使用Exception

<?php
try {
  throw new Exception("拋出異常");
} catch (Exception $e) {
  echo '捕獲到異常'.$e->getMessage();
}

#1> 執行結果
捕獲到異常拋出異常


 

#2: 沒有定義命名空間 使用\Exception

<?php
try {
  throw new \Exception("拋出異常");
} catch (\Exception $e) {
  echo '捕獲到異常'.$e->getMessage();
}

#2> 執行結果
捕獲到異常拋出異常


 

#3: 有定義命名空間 使用Exception

<?php
namespace Test;

try {
  throw new Exception("拋出異常");
} catch (Exception $e) {
  echo '捕獲到異常'.$e->getMessage();
}

#3> 執行結果
Fatal error: Uncaught Error: Class 'Anxiaojing\Exception' not found *** Stack trace: #0 {main} thrown in ***

#4: 有定義命名空間 使用\Exception

<?php
namespace Test;

try {
  throw new \Exception("拋出異常");
} catch (\Exception $e) {
  echo '捕獲到異常'.$e->getMessage();
}

 

 

#4> 執行結果
捕獲到異常拋出異常

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