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> 執行結果
捕獲到異常拋出異常


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM