PHP的异常是什么?

PHP 5 提供了一种新的面向对象的错误处理方法。异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。

一般使用方法:

[php]

'.$this->getMessage().' is not a valid E-Mail address';

return $errorMsg;

}

}

try {

throw new myException($email);

}catch (myException $e){

echo $e->errorMessage();

}

myException类是一个自定义的异常类,必须继承Exception

Exception是一个PHP自带的内置的异常类,默认情况下会使用PHP默认的内置异常类,但是我们可以通过自定义的方式,自定义成满足自己需求的异常类。

使用自定义异常类的时候,throw new myException 抛出异常也需要抛出自定义的异常类类名

catch的时候也需要捕获自定义的异常类

如果抛出了异常而不捕获处理的话,就会发生PHP代码报错,如下:

[sql]

Fatal error: Uncaught exception 'myException' in D:\AppServ\www\cctv\trunk\index.php:12 Stack trace: #0 {main}

thrown in D:\AppServ\www\cctv\trunk\index.php on line 12

PHP默认异常类详细:

[php]

class exception

{

protected $message = 'Unknow exception'; //自定义的异常信息

protected $code = 0; //定义的异常代码

protected $file; //发生异常的PHP程序名

protected $line; //发生异常的PHP行号

//用于传递用户自定义异常信息和用户自定义异常代码的构造函数

function __construct($message=null,$code=0);

final function getMessage();

final function getCode();

final function getFile();

final function getLine();

final function getTrace(); //以数组形式返回异常传递的路线

final function getTraceAsString(); //返回格式化成字符串的getTrace函数信息

function __toString(); //可重载,用于返回可输出的字符串

}

可以看到PHP默认异常类中有很多自定义变量和方法

$e->getMessage 一般是获取错误信息

$e->getCode() 一般是获取错误码

$e->getFile() 获取错误的文件信息

$e->getLine() 获取错误行数

$e->getTrace() 异常经过的文件路径

__toString() 一般可以重载,用于返回可输出的字符串

PHP异常类的作用:

捕获异常,一般可以在MYSQL链接不上,或者业务逻辑错误的时候,抛出异常,在代码最顶端接收。

异常分析处理。可以在出异常的时候,捕获到异常的错误信息,写入日志。

可以返回友好化的提示信息,例如WEB端可以返回页面形式,也可以在AJAX端返回JSON数据格式。

原则:如果异常抛出了,就必须捕获它,否则会PHP报错。

作者:initphp

php uncaught thrown,PHP异常详解相关推荐

  1. Java异常详解及如何处理

    来源:Java异常详解及如何处理 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言 ...

  2. 【疑难杂症04】EOFException异常详解

    [疑难杂症04]EOFException异常详解 参考文章: (1)[疑难杂症04]EOFException异常详解 (2)https://www.cnblogs.com/yiwangzhibujia ...

  3. 页错误 Page Fault /缺页异常 详解

    ​​​​​目录 ​​​​​​ 1. 第一部分:如果你看得懂 1.1 页错误定义 1.2 页错误的处理 2. 第二部分:如果你看不懂上面的,请看这里 2.1. 举例子(背景) 2.1.1 进程及页映射 ...

  4. JAVA基础——异常详解

    阅读目录 一.异常简介 二.try-catch-finally语句 三.throw和throws关键字 四.java中的异常链 五.结束语 JAVA异常与异常处理详解 回到顶部 一.异常简介 什么是异 ...

  5. 【Java】“异常”详解

    Java异常目录: 1.异常定义 2.异常的用法 2.1捕获异常 2.2 调用栈 定义 2.3 其他一些注意事项 3.异常处理流程 4. 抛出异常 5.异常说明 6. Java 异常体系 7.自定义异 ...

  6. Java:如何正确地使用异常详解

    概述: Java中的异常机制是一个好东西.不过好东西也要正确地使用才行,不然就会让我们错误地认识它.在错误地认识状况下,就会错误地使用.这样就成了一个恶性地循环了.这不是我们愿意看到的.不要以为我们已 ...

  7. php的异常详解,PHP5中的异常处理详解

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

  8. java异常库,java中的异常详解

    java中的exception关系图如图下图所示: Throwable 是Exception(异常)和Error(错误)的超类!! 两者的区别: Exception表示程序需要捕捉和处理的的异常; E ...

  9. java throw异常_java throw拋出异常详解

    之前给大家介绍了java throws声明异常,那么和throws不一样的是throw语句用来直接拋出一个异常,后接一个可拋出的异常类对象,下面的话一起来详细的了解一下throw拋出异常吧. 下面是语 ...

最新文章

  1. word2vec的数据结构
  2. 华为P30Pro国外采用4根天线设计,为何国内却只有2根?
  3. 【论文阅读】A social recommender system using item asymmetric correlation
  4. 实验吧_NSCTF web200FALSE(代码审计)
  5. MongoDB 索引-9
  6. java+解析未知json_在Java中解析JSON时如何忽略未知属性– Jackson @JsonIgnoreProperties注释示例...
  7. 跨站点请求伪造_十大常见web漏洞——跨站点请求伪造(CSRF)
  8. 有关Canvas的一点小事—图像绘制
  9. Qt4_子类化QTableWidget
  10. 大小端判断及相互转化
  11. Java如何比较两个数组是否相等
  12. 赢在AI,人工智能技术体验
  13. 解决Spring Boot启动项目Tomcat不能访问80端口的问题
  14. JavaScript之浏览器大战
  15. 一直以来伴随我的一些学习习惯(part1)
  16. 2022年信息安全从业者书单推荐(2022.2.20更新)
  17. 2017杭州云栖大会参会体验
  18. 手把手教你怎么从微软官方下载 Windos10 正版镜像
  19. Auto.js 实现钉钉实时抢红包
  20. TCHAR与char相互转换

热门文章

  1. 第二阶段个人冲刺03
  2. [转]DICOM医学图像处理:Deconstructed PACS之Orthanc
  3. struts2 ajax请求发现执行action两次原因
  4. .NET面试经典问答
  5. salt.states.file试用
  6. apache rewrite 支持post 数据
  7. C语言编程之格式化输出函数printf()说明
  8. Android Handler消息传递机制
  9. 005_Spring的属性注入
  10. 027_JavaScript数组迭代