php异常处理方法实例汇总


Posted in PHP onJune 24, 2015

本文实例讲述了php异常处理方法。分享给大家供大家参考。具体如下:

<?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); 
  } 
} 
?>
<?php 
$path = "D://in.txt";
//文件所在路径 
file_open($path);
//调用file_open函数 
 
function file_open($path) 
{ 
  if(!file_exists($path))
  //如果文件无法找到,抛出异常对象 
  { 
    throw new Exception("文件无法找到", 1); 
  } 
  if(!fopen($path, "r"))
  //如果文件无法打开,抛出异常对象 
  { 
    throw new Exception("文件无法打开", 2); 
  } 
} 
?>
<?php 
function exception_handler($e)
//用于处理异常的函数 
{ 
 echo "未捕获的异常:".$e->getMessage(); 
} 
 
set_exception_handler("exception_handler");
//设置异常处理函数 
try //检测异常 
{ 
  $path = "D://in.txt"; 
} 
catch(Exception $e) //捕获异常 
{ 
  echo $e->getMessage(); 
} 
file_open($path); //调用函数打开文件 
function file_open($path) 
{ 
  if(!file_exists($path))
  //如果文件无法找到,抛出异常对象 
  { 
    throw new Exception("文件无法找到", 1); 
  } 
  if(!fopen($path, "r"))
  //如果文件无法打开,抛出异常对象 
  { 
    throw new Exception("文件无法打开", 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异常对象 
 
  } 
} 
?>
<?php 
class FileExistsException extends Exception{}
//用于处理文件不存在异常的类 
class FileOpenException extends Exception{}
//用于处理文件不可读异常的类 
$path = "D://in.txt"; 
try 
{ 
  file_open($path); //尝试打开文件 
} 
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函数信息 
} 
catch(FileExistsException $e)
//如果产生FileExistsException异常则提示用户确认文件位置 
{ 
  echo "程序在运行过程中发生了异常:".$e->getMessage()."/n"; 
  echo "请确认文件位置。"; 
} 
catch(FileOpenException $e)
//如果产生FileOpenException异常则提示用户确认文件的可读性 
{ 
  echo "程序在运行过程中发生了异常:".$e->getMessage()."/n"; 
  echo "请确认文件的可读性。"; 
} 
function file_open($path) 
{ 
  if(!file_exists($path))
  //如果文件不存在,则输出错误 
  { 
    throw new FileExistsException("文件无法找到", 1); 
  } 
   
  if(!fopen($path, "r")) 
  { 
    throw new FileOpenException("文件无法打开", 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) 
{ 
  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;                  //重掷异常 
  } 
} 
?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
优化php效率,提高php性能的一些方法
Mar 24 PHP
Drupal读取Excel并导入数据库实例
Mar 02 PHP
php简单操作mysql数据库的类
Apr 16 PHP
YII Framework教程之异常处理详解
Mar 14 PHP
php字符串操作针对负值的判断分析
Jul 28 PHP
PHP第三方登录―QQ登录实现方法
Feb 06 PHP
PHP中for循环与foreach的区别
Mar 06 PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
PHP设计模式之简单工厂和工厂模式实例分析
Mar 25 PHP
laravel 框架实现无限级分类的方法示例
Oct 31 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 PHP
php数组索引与键值操作技巧实例分析
Jun 24 #PHP
PHP实现在线阅读PDF文件的方法
Jun 23 #PHP
php中header设置常见文件类型的content-type
Jun 23 #PHP
PHP register_shutdown_function()函数的使用示例
Jun 23 #PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
Jun 23 #PHP
PHP中把错误日志保存在系统日志中(Windows系统)
Jun 23 #PHP
PHP中通过trigger_error触发PHP错误示例
Jun 23 #PHP
You might like
全国FM电台频率大全 - 27 陕西省
2020/03/11 无线电
转换中文日期的PHP程序
2006/10/09 PHP
关于PHP5 Session生命周期介绍
2010/03/02 PHP
php UBB 解析实现代码
2011/11/27 PHP
php循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
php foreach循环中使用引用的问题
2013/11/06 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
[原创]PHP简单开启curl的方法(测试可行)
2016/01/11 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
Javascript 计算字符串在localStorage中所占字节数
2015/10/21 Javascript
Vue.js组件tab实现选项卡切换
2020/03/23 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
微信小程序动态显示项目倒计时
2019/06/20 Javascript
[52:15]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS LGD-GAMING
2014/05/23 DOTA
处理Python中的URLError异常的方法
2015/04/30 Python
Python实现判断并移除列表指定位置元素的方法
2018/04/13 Python
提升Python程序性能的7个习惯
2019/04/14 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
python之语音识别speech模块
2020/09/09 Python
整理HTML5的一些新特性与Canvas的常用属性
2016/01/29 HTML / CSS
中软Java笔试题
2012/11/11 面试题
局域网标准
2016/09/10 面试题
高中美术教学反思
2014/01/19 职场文书
科学发展观演讲稿
2014/09/11 职场文书
特种设备安全管理制度
2015/08/06 职场文书
2016先进工作者事迹材料
2016/02/25 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
Spark SQL 2.4.8 操作 Dataframe的两种方式
2021/10/16 SQL Server
Golang 并发下的问题定位及解决方案
2022/03/16 Golang