IT猫扑网:您身边最放心的安全下载站! 最新更新| 软件分类| 专题汇总| 手机版

您当前所在位置:IT猫扑网 > 网络编程 > PHP编程 > 详细介绍php5编程中的异常处理

详细介绍php5编程中的异常处理

时间:2015-06-28 00:00 来源:IT猫扑网|http://www.itmop.com/ 作者:网管联盟 我要评论(0)

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&; //返回发生异常的PHP程序文件名
echo &异常代码所在行&.$e->getLine().&n&; //返回发生异常的代码所在行的行号
echo &传递路线:&;
print_r($e->getTrace()); //以数组形式返回跟踪异常每一步传递的路线
echo $e->getTraceAsString(); //返回格式化成字符串的getTrace函数信息
}

function file_open($path)
{
if(!file_exists($path)) //如果文件不存在,则抛出错误
{
throw new Exception(&文件无法找到&, 1);
}

if(!fopen($path, &r&))
{
throw new Exception(&文件无法打开&, 2);
}
}
?> 

 

 扩展异常,即自定义异常

<?php
class FileExistsException extends Exception{} //用于处理文件不存在异常的类
class FileOpenException extends Exception{} //用于处理文件不可读异常的类

$path = &D:in.txt&;

try
{
file_open($path);
}
catch(FileExistsException $e) //如果产生FileExistsException异常则提示用户确认文件位置
{
echo &程序在运行过程中发生了异常:&.$e->getMessage().&n&;
echo &请确认文件位置。&;
}
catch(FileOpenException $e) //如果产生FileOpenException异常则提示用户确认文件的可读性
{
echo &程序在运行过程中发生了异常:&.$e->getMessage().&n&;
echo &请确认文件的可读性。&;
}
catch(Exception $e)
{
echo &[未知异常]&;
echo &异常信息:&.$e->getMessage().&n&; //返回用户自定义的异常信息
echo &异常代码:&.$e->getCode().&n&; //返回用户自定义的异常代码
echo &文件名:&.$e->getFile().&n&; //返回发生异常的PHP程序文件名
echo &异常代码所在行&.$e->getLine().&n&; //返回发生异常的代码所在行的行号
echo &传递路线:&;
print_r($e->getTrace()); //以数组形式返回跟踪异常每一步传递的路线
echo $e->getTraceAsString(); //返回格式化成字符串的getTrace函数信息
}

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) //如果产生FileExistsException异常则提示用户确认文件位置
{
echo &程序在运行过程中发生了异常:&.$e->getMessage().&n&;
echo &请确认文件位置。&;
}
catch(FileOpenException $e) //如果产生FileOpenException异常则提示用户确认文件的可读性
{
echo &程序在运行过程中发生了异常:&.$e->getMessage().&n&;
echo &请确认文件的可读性。&;
}
catch(Exception $e)
{
echo &[未知异常]&;
echo &异常信息:&.$e->getMessage().&n&; //返回用户自定义的异常信息
echo &异常代码:&.$e->getCode().&n&; //返回用户自定义的异常代码
echo &文件名:&.$e->getFile().&n&; //返回发生异常的PHP程序文件名
echo &异常代码所在行&.$e->getLine().&n&; //返回发生异常的代码所在行的行号
echo &传递路线:&;
print_r($e->getTrace()); //以数组形式返回跟踪异常每一步传递的路线
echo $e->getTraceAsString(); //返回格式化成字符串的getTrace函数信息
}

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函数在运行过程中出现异常&;
throw $e; //重掷异常
}
}
?>

关键词标签:异常,处理,编程,介绍

相关阅读 2021年最好用的10款php开发工具推荐 plsql developer怎么连接数据库-plsql developer连接数据库方法 php利用淘宝IP库获取用户ip地理位置 在 PHP 中使用命令行工具 php出现Cannot modify header information问题的解决方法大全 详解ucenter原理及第三方应用程序整合思路、方法

文章评论
发表评论

热门文章 2021年最好用的10款php开发工具推荐 2021年最好用的10款php开发工具推荐 plsql developer怎么连接数据库-plsql developer连接数据库方法 plsql developer怎么连接数据库-plsql developer连接数据库方法 在 PHP 中使用命令行工具 在 PHP 中使用命令行工具 php应用程序安全防范技术研究 php应用程序安全防范技术研究 关于php curl获取301或302转向的网址问题 关于php curl获取301或302转向的网址问题

相关下载

人气排行 详解ucenter原理及第三方应用程序整合思路、方法 plsql developer怎么连接数据库-plsql developer连接数据库方法 PHP中防止SQL注入攻击 PHP会话Session的具体使用方法解析 PHP运行出现Notice : Use of undefined constant 的解决办法 PHP如何清空mySQL数据库 CakePHP程序员必须知道的21条技巧 PHP采集图片实例(PHP采集) 完美解决failed to open stream: HTTP request failed! <? phpinfo() ?>无法执行的解决办法 2021年最好用的10款php开发工具推荐 用header或meta实现PHP页面编码的区别