php異常處理方法實(shí)例匯總
本文實(shí)例講述了php異常處理方法。分享給大家供大家參考。具體如下:
<?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ú)法打開(kāi),拋出異常對(duì)象
{
throw new Exception("文件無(wú)法打開(kāi)", 2);
}
}
?>
<?php
$path = "D://in.txt";
//文件所在路徑
file_open($path);
//調(diào)用file_open函數(shù)
function file_open($path)
{
if(!file_exists($path))
//如果文件無(wú)法找到,拋出異常對(duì)象
{
throw new Exception("文件無(wú)法找到", 1);
}
if(!fopen($path, "r"))
//如果文件無(wú)法打開(kāi),拋出異常對(duì)象
{
throw new Exception("文件無(wú)法打開(kāi)", 2);
}
}
?>
<?php
function exception_handler($e)
//用于處理異常的函數(shù)
{
echo "未捕獲的異常:".$e->getMessage();
}
set_exception_handler("exception_handler");
//設(shè)置異常處理函數(shù)
try //檢測(cè)異常
{
$path = "D://in.txt";
}
catch(Exception $e) //捕獲異常
{
echo $e->getMessage();
}
file_open($path); //調(diào)用函數(shù)打開(kāi)文件
function file_open($path)
{
if(!file_exists($path))
//如果文件無(wú)法找到,拋出異常對(duì)象
{
throw new Exception("文件無(wú)法找到", 1);
}
if(!fopen($path, "r"))
//如果文件無(wú)法打開(kāi),拋出異常對(duì)象
{
throw new Exception("文件無(wú)法打開(kāi)", 2);
}
}
?>
<?php
$path = "D://in.txt";
try
{
file_open($path); //嘗試打開(kāi)文件
}
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ú)法打開(kāi)", 2);
}
}
?>
<?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ú)法打開(kāi)", 2);
//拋出FileOpenException異常對(duì)象
}
}
?>
<?php
class FileExistsException extends Exception{}
//用于處理文件不存在異常的類
class FileOpenException extends Exception{}
//用于處理文件不可讀異常的類
$path = "D://in.txt";
try
{
file_open($path); //嘗試打開(kāi)文件
}
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ù)信息
}
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)文件的可讀性。";
}
function file_open($path)
{
if(!file_exists($path))
//如果文件不存在,則輸出錯(cuò)誤
{
throw new FileExistsException("文件無(wú)法找到", 1);
}
if(!fopen($path, "r"))
{
throw new FileOpenException("文件無(wú)法打開(kāi)", 2);
}
}
?>
<?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ú)法打開(kāi)", 2);
}
}
catch(Exception $e) //捕獲異常
{
echo "file_open函數(shù)在運(yùn)行過(guò)程中出現(xiàn)異常";
throw $e; //重?cái)S異常
}
}
?>
希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP中str_replace函數(shù)使用小結(jié)
在實(shí)際的程序開(kāi)發(fā)中,執(zhí)行字符串替換操作是一件非常經(jīng)常的事,對(duì)str_replace函數(shù)的實(shí)用也會(huì)非常頻繁。2008-10-10
PHP獲取搜索引擎關(guān)鍵字來(lái)源的函數(shù)(支持百度和谷歌等搜索引擎)
通過(guò)網(wǎng)站功能來(lái)增加一字段,獲取來(lái)源關(guān)鍵字,如何獲取來(lái)源關(guān)鍵字,代碼發(fā)在下面,里面包含(百度、谷歌、雅虎、搜狗、搜搜、必應(yīng)、有道)幾大搜索引擎的獲取方法,代碼中均注明,希望對(duì)你有幫助,分享一下2012-10-10
使用php統(tǒng)計(jì)字符串中中英文字符的個(gè)數(shù)
本篇文章是對(duì)使用php統(tǒng)計(jì)字符串中中英文字符的個(gè)數(shù)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
php性能優(yōu)化分析工具XDebug 大型網(wǎng)站調(diào)試工具
大型網(wǎng)站調(diào)試工具之一(php性能優(yōu)化分析工具XDebug) ,開(kāi)發(fā)php的朋友可以參考下。有助于解決php代碼的多種問(wèn)題。2011-05-05
比較strtr, str_replace和preg_replace三個(gè)函數(shù)的效率
本篇文章是對(duì)strtr, str_replace和preg_replace三個(gè)函數(shù)的效率問(wèn)題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
Smarty是一個(gè)php模板引擎,它分開(kāi)了邏輯程序和外在的內(nèi)容,提供了一種易于管理的方法. Smarty要求web服務(wù)器運(yùn)行php4.0.6和以上版本. smarty安裝需要smarty庫(kù)文件。可以去官方網(wǎng)站http://smarty.php.net下載。 網(wǎng)上講了很多安裝的教程,但是我都沒(méi)有成功,所以直接把整個(gè)目錄名改為smarty直接復(fù)制到了網(wǎng)站所在的目錄下,然后打開(kāi)http://網(wǎng)站路徑/smarty/demo/index.php,顯示正常,應(yīng)該算是安裝成功了。2008-03-03
關(guān)于php 高并發(fā)解決的一點(diǎn)思路
涉及搶購(gòu)、秒殺、抽獎(jiǎng)、搶票等活動(dòng)時(shí),為了避免超賣,那么庫(kù)存數(shù)量是有限的,但是如果同時(shí)下單人數(shù)超過(guò)了庫(kù)存數(shù)量,就會(huì)導(dǎo)致商品超賣問(wèn)題。那么我們?cè)趺磥?lái)解決這個(gè)問(wèn)題呢,我的思路如下2017-04-04
php+html5+ajax實(shí)現(xiàn)上傳圖片的方法
這篇文章主要介紹了php+html5+ajax實(shí)現(xiàn)上傳圖片的方法,對(duì)比分析了js原生及jQuery兩種ajax調(diào)用上傳圖片的方法,以及php圖片上傳處理等技巧,需要的朋友可以參考下2016-05-05
php mysql操作mysql_connect連接數(shù)據(jù)庫(kù)實(shí)例詳解
php操作數(shù)據(jù)庫(kù)首先必須連接到指定的數(shù)據(jù)庫(kù),連接數(shù)據(jù)庫(kù)可以使用PHP mysql_connect函數(shù),本文章向大家介紹mysql_connect函數(shù)的使用方法和實(shí)例,需要的朋友可以參考一下2016-12-12

