异常:
程序在运行的时候,正常情况下不会出问题,但是在一些特殊的情况它会出现问题!
【PHP|2-1.(OOP)PHP异常处理】异常处理:
我们可以通过PHP的异常处理机制来妥善的处理这些异常
要想捕获抛出的异常,必须使用下面的语句结构
PHP为我们提供了现成的异常处理Exception
try{
可能抛出异常的程序请你放到这边来执行!
注: 在可能出现异常的地方需要使用 throw new Exception($error);
将异常对象抛出
如果抛出异常那么这边之后的代码都不会执行,从而跳到catch那边执行,
如果没有抛出异常那么catch中的代码永远不会执行
}catch(Exception $e){
如果上面抛出异常对象,那么就会跳到这边来执行
$e 这个对象里面有很多成员供我们使用
getCode( )返回接收到的异常代号
getMessage( )返回接收到的异常信息
getPrevious( )返回异常链中的前一个异常
getFile( )返回发生异常的文件名
getLine( )返回发生异常的代码行数
getTrace( )获取异常追踪信息(保存了文件名、行号等数据的数组)
getTraceAsString( ) 获取字符串类型的异常追踪信息
_toString( )将异常对象转换为字符串
}
...继续执行
注:
1. 如果一个异常没有被捕获,PHP会产生一个致命错误并且报出“未捕获的异常...”信息,除非设置一个用户定义的异常函数
用户定义的异常处理函数:
set_exception_handler(callable $exception_handler)
2. 当一个异常被抛出,try里面之后的语句代码不会继续执行,PHP会尝试找到能与之匹配的catch
3. 抛出的异常会一层层的传到最初执行的代码那边(如果中间没被捕获的话)
4. 每个try都必须至少有一个相应的catch或finally块
5. 当Exception类不够用的时候,我们完全可以扩展他(继承)
6. 抛出对象必须是异常类(Exception)的一个实例或异常的子类的实例
错误:
无论什么情况它都是错误
推荐阅读
- 对GO切片的理解
- 小程序商城网站开发秒杀模块篇
- 盲盒购物网站系统开发建设 第三篇
- Netty核心概念之ChannelHandler&Pipeline&ChannelHandlerContext
- 简单的线程池实现多线程对大文件的读取
- SSH 端口转发与 SOCKS 代理
- Ubuntu16.04/Scala2.11.8安装教程
- 学习PHP中的高精度计时器HRTime扩展
- 使用OpenResty+Lua实现灰度测试(金丝雀)
- 使用源码编译安装PHP扩展