php5編程中的異常處理詳細(xì)方法介紹
更新時(shí)間:2008年07月29日 12:47:21 作者:
比較詳細(xì)的關(guān)于php5的異常處理方法,而且給出了,多種方法
1 首先是try,catch
<?php
$path = "D:\\\\in.txt";
try //檢測(cè)異常
{
file_open($path);
}
catch(Exception $e) //捕獲異常
{
echo $e->getMessage();
}
function file_open($path)
{
if(!file_exists($path)) //如果文件無(wú)法找到,拋出異常對(duì)象
{
throw new Exception("文件無(wú)法找到", 1);
}
if(!fopen($path, "r")) //如果文件無(wú)法打開,拋出異常對(duì)象
{
throw new Exception("文件無(wú)法打開", 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ā)生異常的代碼所在行的行號(hào)
echo "傳遞路線:";
print_r($e->getTrace()); //以數(shù)組形式返回跟蹤異常每一步傳遞的路線
echo $e->getTraceAsString(); //返回格式化成字符串的getTrace函數(shù)信息
}
function file_open($path)
{
if(!file_exists($path)) //如果文件不存在,則拋出錯(cuò)誤
{
throw new Exception("文件無(wú)法找到", 1);
}
if(!fopen($path, "r"))
{
throw new Exception("文件無(wú)法打開", 2);
}
}
?>
擴(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 "程序在運(yùn)行過(guò)程中發(fā)生了異常:".$e->getMessage()."\\n";
echo "請(qǐng)確認(rèn)文件位置。";
}
catch(FileOpenException $e) //如果產(chǎn)生FileOpenException異常則提示用戶確認(rèn)文件的可讀性
{
echo "程序在運(yùn)行過(guò)程中發(fā)生了異常:".$e->getMessage()."\\n";
echo "請(qǐng)確認(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ā)生異常的代碼所在行的行號(hào)
echo "傳遞路線:";
print_r($e->getTrace()); //以數(shù)組形式返回跟蹤異常每一步傳遞的路線
echo $e->getTraceAsString(); //返回格式化成字符串的getTrace函數(shù)信息
}
function file_open($path)
{
if(!file_exists($path))
{
throw new FileExistsException("文件無(wú)法找到", 1); //拋出FileExistsException異常對(duì)象
}
if(!fopen($path, "r"))
{
throw new FileOpenException("文件無(wú)法打開", 2); //拋出FileOpenException異常對(duì)象
}
}
?>
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 "程序在運(yùn)行過(guò)程中發(fā)生了異常:".$e->getMessage()."\\n";
echo "請(qǐng)確認(rèn)文件位置。";
}
catch(FileOpenException $e) //如果產(chǎn)生FileOpenException異常則提示用戶確認(rèn)文件的可讀性
{
echo "程序在運(yùn)行過(guò)程中發(fā)生了異常:".$e->getMessage()."\\n";
echo "請(qǐng)確認(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ā)生異常的代碼所在行的行號(hào)
echo "傳遞路線:";
print_r($e->getTrace()); //以數(shù)組形式返回跟蹤異常每一步傳遞的路線
echo $e->getTraceAsString(); //返回格式化成字符串的getTrace函數(shù)信息
}
function file_open($path)
{
try
{
if(!file_exists($path))
{
throw new FileExistsException("文件無(wú)法找到", 1);
}
if(!fopen($path, "r"))
{
throw new FileOpenException("文件無(wú)法打開", 2);
}
}
catch(Exception $e) //捕獲異常
{
echo "file_open函數(shù)在運(yùn)行過(guò)程中出現(xiàn)異常";
throw $e; //重?cái)S異常
}
}
?>
<?php
$path = "D:\\\\in.txt";
try //檢測(cè)異常
{
file_open($path);
}
catch(Exception $e) //捕獲異常
{
echo $e->getMessage();
}
function file_open($path)
{
if(!file_exists($path)) //如果文件無(wú)法找到,拋出異常對(duì)象
{
throw new Exception("文件無(wú)法找到", 1);
}
if(!fopen($path, "r")) //如果文件無(wú)法打開,拋出異常對(duì)象
{
throw new Exception("文件無(wú)法打開", 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ā)生異常的代碼所在行的行號(hào)
echo "傳遞路線:";
print_r($e->getTrace()); //以數(shù)組形式返回跟蹤異常每一步傳遞的路線
echo $e->getTraceAsString(); //返回格式化成字符串的getTrace函數(shù)信息
}
function file_open($path)
{
if(!file_exists($path)) //如果文件不存在,則拋出錯(cuò)誤
{
throw new Exception("文件無(wú)法找到", 1);
}
if(!fopen($path, "r"))
{
throw new Exception("文件無(wú)法打開", 2);
}
}
?>
擴(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 "程序在運(yùn)行過(guò)程中發(fā)生了異常:".$e->getMessage()."\\n";
echo "請(qǐng)確認(rèn)文件位置。";
}
catch(FileOpenException $e) //如果產(chǎn)生FileOpenException異常則提示用戶確認(rèn)文件的可讀性
{
echo "程序在運(yùn)行過(guò)程中發(fā)生了異常:".$e->getMessage()."\\n";
echo "請(qǐng)確認(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ā)生異常的代碼所在行的行號(hào)
echo "傳遞路線:";
print_r($e->getTrace()); //以數(shù)組形式返回跟蹤異常每一步傳遞的路線
echo $e->getTraceAsString(); //返回格式化成字符串的getTrace函數(shù)信息
}
function file_open($path)
{
if(!file_exists($path))
{
throw new FileExistsException("文件無(wú)法找到", 1); //拋出FileExistsException異常對(duì)象
}
if(!fopen($path, "r"))
{
throw new FileOpenException("文件無(wú)法打開", 2); //拋出FileOpenException異常對(duì)象
}
}
?>
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 "程序在運(yùn)行過(guò)程中發(fā)生了異常:".$e->getMessage()."\\n";
echo "請(qǐng)確認(rèn)文件位置。";
}
catch(FileOpenException $e) //如果產(chǎn)生FileOpenException異常則提示用戶確認(rèn)文件的可讀性
{
echo "程序在運(yùn)行過(guò)程中發(fā)生了異常:".$e->getMessage()."\\n";
echo "請(qǐng)確認(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ā)生異常的代碼所在行的行號(hào)
echo "傳遞路線:";
print_r($e->getTrace()); //以數(shù)組形式返回跟蹤異常每一步傳遞的路線
echo $e->getTraceAsString(); //返回格式化成字符串的getTrace函數(shù)信息
}
function file_open($path)
{
try
{
if(!file_exists($path))
{
throw new FileExistsException("文件無(wú)法找到", 1);
}
if(!fopen($path, "r"))
{
throw new FileOpenException("文件無(wú)法打開", 2);
}
}
catch(Exception $e) //捕獲異常
{
echo "file_open函數(shù)在運(yùn)行過(guò)程中出現(xiàn)異常";
throw $e; //重?cái)S異常
}
}
?>
您可能感興趣的文章:
- PHP的異常處理類Exception的使用及說(shuō)明
- PHP如何拋出異常處理錯(cuò)誤
- PHP中的錯(cuò)誤處理、異常處理機(jī)制分析
- php中異常處理方法小結(jié)
- PHP中異常處理的一些方法整理
- PHP 的異常處理、錯(cuò)誤的拋出及回調(diào)函數(shù)等面向?qū)ο蟮腻e(cuò)誤處理方法
- 一個(gè)顯示效果非常不錯(cuò)的PHP錯(cuò)誤、異常處理類
- 實(shí)例講解如何在PHP的Yii框架中進(jìn)行錯(cuò)誤和異常處理
- PHP異常處理Exception類
- php PDO異常處理詳解
- php異常處理方法實(shí)例匯總
- PHP異常處理定義與使用方法分析
相關(guān)文章
PHP實(shí)現(xiàn)算式驗(yàn)證碼和漢字驗(yàn)證碼實(shí)例
這篇文章主要介紹了PHP實(shí)現(xiàn)算式驗(yàn)證碼和漢字驗(yàn)證碼實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-03-03
php cookie中點(diǎn)號(hào)(句號(hào))自動(dòng)轉(zhuǎn)為下劃線問(wèn)題
這篇文章主要介紹了php cookie中點(diǎn)號(hào)(句號(hào))自動(dòng)轉(zhuǎn)為下劃線問(wèn)題,需要的朋友可以參考下2014-10-10
PHP根據(jù)傳來(lái)的16進(jìn)制顏色代碼自動(dòng)改變背景顏色
根據(jù)傳來(lái)的16進(jìn)制顏色代碼自動(dòng)改變背景顏色,需要的朋友可以參考下2014-06-06
前后端分離和跨域問(wèn)題的詳細(xì)解決方案(CORS的原理)
前后端跨域問(wèn)題由瀏覽器同源策略而來(lái),下面這篇文章主要給大家介紹了關(guān)于前后端分離和跨域問(wèn)題的詳細(xì)解決方案,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
php中顯示數(shù)組與對(duì)象的實(shí)現(xiàn)代碼
數(shù)組是PHP中變量的一種,在PHP開發(fā)中經(jīng)常使用,因此非常重要,使用PHP語(yǔ)句打印數(shù)組內(nèi)容。2011-04-04
php專用數(shù)組排序類ArraySortUtil用法實(shí)例
這篇文章主要介紹了php專用數(shù)組排序類ArraySortUtil用法,實(shí)例分析了ArraySortUtil實(shí)現(xiàn)數(shù)組排序的方法與對(duì)應(yīng)使用技巧,需要的朋友可以參考下2015-04-04

