日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

php无法捕获异常怎么办

發(fā)布時間:2023/12/29 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 php无法捕获异常怎么办 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

解決php無法捕獲異常的方法:首先使用函數(shù)【try,catch】;然后輸出異常完整信息;接著定義異常,代碼為【catch(FileExistException $e)】;最后重拋異常給上層,代碼為【catch(Exception $e)】。

【相關(guān)學(xué)習(xí)推薦:php圖文教程】

解決php無法捕獲異常的方法:

1、首先是try,catch

<?php
$path = "D:\\\\in.txt";
try           //檢測異常
{
 file_open($path);
}
catch(Exception $e)        //捕獲異常
{
 echo $e->getMessage();
}
function file_open($path)
{
 if(!file_exists($path))       //如果文件無法找到,拋出異常對象
 {
  throw new Exception("文件無法找到", 1);
 }
 
 if(!fopen($path, "r"))       //如果文件無法打開,拋出異常對象
 {
  throw new Exception("文件無法打開", 2);
 }
}
?>

注意用$e->getMessage()輸出異常信息.

2、輸出異常完整信息

<?php
$path = "D:\\\\in.txt";
try
{
 file_open($path);        //嘗試打開文件
}
catch(Exception $e)
{
 echo "異常信息:".$e->getMessage()."\\n";   //返回用戶自定義的異常信息
 echo "異常代碼:".$e->getCode()."\\n";      //返回用戶自定義的異常代碼
 echo "文件名:".$e->getFile()."\\n";                    //返回發(fā)生異常的PHP程序文件名
 echo "異常代碼所在行".$e->getLine()."\\n";               //返回發(fā)生異常的代碼所在行的行號
 echo "傳遞路線:";
 print_r($e->getTrace());                     //以數(shù)組形式返回跟蹤異常每一步傳遞的路線
 echo $e->getTraceAsString();              //返回格式化成字符串的getTrace函數(shù)信息
}
function file_open($path)
{
 if(!file_exists($path))        //如果文件不存在,則拋出錯誤
 {
  throw new Exception("文件無法找到", 1);
 }
 
 if(!fopen($path, "r"))
 {
  throw new Exception("文件無法打開", 2);
 }
}
?>

3、擴(kuò)展異常,即自定義異常

<?php
class FileExistsException extends Exception{}  //用于處理文件不存在異常的類
class FileOpenException extends Exception{}  //用于處理文件不可讀異常的類
$path = "D:\\\\in.txt";
try
{
 file_open($path);
}
catch(FileExistsException $e)    //如果產(chǎn)生FileExistsException異常則提示用戶確認(rèn)文件位置
{
 echo "程序在運行過程中發(fā)生了異常:".$e->getMessage()."\\n";
 echo "請確認(rèn)文件位置。";
}
catch(FileOpenException $e)    //如果產(chǎn)生FileOpenException異常則提示用戶確認(rèn)文件的可讀性
{
 echo "程序在運行過程中發(fā)生了異常:".$e->getMessage()."\\n";
 echo "請確認(rèn)文件的可讀性。";
}
catch(Exception $e)
{
 echo "[未知異常]";
 echo "異常信息:".$e->getMessage()."\\n";   //返回用戶自定義的異常信息
 echo "異常代碼:".$e->getCode()."\\n";      //返回用戶自定義的異常代碼
 echo "文件名:".$e->getFile()."\\n";                    //返回發(fā)生異常的PHP程序文件名
 echo "異常代碼所在行".$e->getLine()."\\n";    //返回發(fā)生異常的代碼所在行的行號
 echo "傳遞路線:";
 print_r($e->getTrace());                //以數(shù)組形式返回跟蹤異常每一步傳遞的路線
 echo $e->getTraceAsString();              //返回格式化成字符串的getTrace函數(shù)信息
}
function file_open($path)
{
 if(!file_exists($path))
 {
  throw new FileExistsException("文件無法找到", 1);  //拋出FileExistsException異常對象
 }
 
 if(!fopen($path, "r"))
 {
  throw new FileOpenException("文件無法打開", 2);   //拋出FileOpenException異常對象
 }
}
?>

4、重拋異常給上層

<?php
class FileExistsException extends Exception{}  //用于處理文件不存在異常的類
class FileOpenException extends Exception{}  //用于處理文件不可讀異常的類
$path = "D:\\\\in.txt";
try
{
 file_open($path);
}
catch(FileExistsException $e)    //如果產(chǎn)生FileExistsException異常則提示用戶確認(rèn)文件位置
{
 echo "程序在運行過程中發(fā)生了異常:".$e->getMessage()."\\n";
 echo "請確認(rèn)文件位置。";
}
catch(FileOpenException $e)    //如果產(chǎn)生FileOpenException異常則提示用戶確認(rèn)文件的可讀性
{
 echo "程序在運行過程中發(fā)生了異常:".$e->getMessage()."\\n";
 echo "請確認(rèn)文件的可讀性。";
}
catch(Exception $e)
{
 echo "[未知異常]";
 echo "異常信息:".$e->getMessage()."\\n";   //返回用戶自定義的異常信息
 echo "異常代碼:".$e->getCode()."\\n";      //返回用戶自定義的異常代碼
 echo "文件名:".$e->getFile()."\\n";                    //返回發(fā)生異常的PHP程序文件名
 echo "異常代碼所在行".$e->getLine()."\\n";               //返回發(fā)生異常的代碼所在行的行號
 echo "傳遞路線:";
 print_r($e->getTrace());                   //以數(shù)組形式返回跟蹤異常每一步傳遞的路線
 echo $e->getTraceAsString();              //返回格式化成字符串的getTrace函數(shù)信息
}
function file_open($path)
{
 try
 {
  if(!file_exists($path))
  {
   throw new FileExistsException("文件無法找到", 1);
  }
  
  if(!fopen($path, "r"))
  {
   throw new FileOpenException("文件無法打開", 2);
  }
 }
 catch(Exception $e)        //捕獲異常
 {
  echo "file_open函數(shù)在運行過程中出現(xiàn)異常";
  throw $e;         //重擲異常
 }
}
?>

相關(guān)學(xué)習(xí)推薦:php編程(視頻)

總結(jié)

以上是生活随笔為你收集整理的php无法捕获异常怎么办的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。