老莫的笔记本  
  
查看: 910|回复: 0

PHP 异常的 处理 try -- catch

[复制链接]

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
发表于 2018-7-23 00:31:39 | 显示全部楼层 |阅读模式
参考文献:http://www.w3school.com.cn/php/php_exception.asp

我经常遇到一个报错:Uncaught exception 'Exception'  ;
其实这就是后台代码 未捕获异常的错误报告。
当异常被抛出时,后面的代码不会执行,PHP会寻找相应的catch 代码块,如果未捕获或者未使用set_exception_hander() 作相应的处理的话,那么会发生一个严重错误。就是上面 红色的大字!  你还别说 我总算是知道为啥 我扒 易企秀总是失败了。

语法:
  1.     try{  
  2.         //可能出现错误或者异常的代码
  3.         //catch 表示捕获 Exception是PHP已定义号的异常类
  4.     }catch(Exception $e){
  5.         //对异常处理的方法 1. 自己处理 ; 2.不处理将其抛出 ;
  6.     }
复制代码
解读:
Try  ---- 使用异常的函数应该位于 try内
Throw  ---- 这里规定如何处罚异常(无异常无反应,必须对应至少一个 catch)
Catch  ----异常代码捕获模块

举例
  1. <?php
  2. //创建可抛出一个异常的函数
  3. function checkNum($number)
  4. {
  5. if($number>1)
  6.   {
  7.   throw new Exception("Value must be 1 or below");
  8.   }
  9. return true;
  10. }
  11. //在 "try" 代码块中触发异常
  12. try
  13. {
  14. checkNum(2);
  15. //If the exception is thrown, this text will not be shown
  16. echo 'If you see this, the number is 1 or below }
  17. //捕获异常
  18. catch(Exception $e)
  19. {
  20. echo 'Message: ' .$e->getMessage();
  21. }
  22. ?>
复制代码
解析上面复制粘贴w3c的代码:
catch 代码块接收到异常,并创建一个包含异常信息的对象 ($e);通过这个exception对象  调用 $e->getMessage() ,输出来自该异常的错误信息;

Exception 具有几个基本属性与方法,其中包括了:
message---- 异常消息内容
code----异常代码
file----抛出异常的文件名
line----抛出异常在该文件的行数
方法有
getTrace---- 获取异常追踪信息
getTraceString----获取异常追踪信息的字符串
getMessage----获取出错信息
getLine---- 异常行号
getFile---- 所在文件

将异常记录到日志中: file_put_contents(error log;$msg)
将异常展示到网页中: echo n12br($msg)


















回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表