PHP异常处理

这几天面试,面试官都会提到PHP异常处理这个问题,可见异常处理在项目中是多麽的重要,不仅要了解,还要理解,甚至会用

什么是异常(Exception)?

在指定的异常发生时,改变脚本的正常流程,这就叫异常

如何处理异常?

PHP5提供了一种新的面向对象的异常处理方法

我们先来了解一下,通常异常发生时会出现那些状态:

  • 当前代码状态被保存
  • 代码执行被切换到预定义的异常处理器函数
  • 根据情况,处理器可能会从保存的代码状态,重新执行代码,终止脚本执行,,或从代码中另外的位置继续执行代码

处理异常

我们需要创建一个专门的类,当PHP出现异常时,可调用其函数

我们先来认识几个函数:

  • Try(): 使用异常的函数应该位于 “try” 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
  • Throw(): 这里规定如何触发异常。每一个 “throw” 必须对应至少一个 “catch”
  • Catch(): “catch” 代码块会捕获异常,并创建一个包含异常信息的对象
  • Set_error_handler(): 用于捕捉错误,设置一个用户自定义的错误处理函数
  • Register_shutdown_function(): 捕获PHP的错误:Fatal Error、Parse Error等,这个方法是PHP脚本执行结束前最后一个调用的函数,比如脚本错误、die()、exit、异常、正常结束都会调用.通过这个函数就可以在脚本结束前判断这次执行是否有错误产生,这时就要借助于一个函数:error_get_last();这个函数可以拿到本次执行产生的所有错误。error_get_last();返回的信息:
      [type] - 错误类型
      [message] - 错误消息
      [file] - 发生错误所在的文件
      [line] - 发生错误所在的行
  • Set_exception_handler(): 设置默认的异常处理程序,用在没有用try/catch块来捕获的异常,也就是说不管你抛出的异常有没有人捕获,如果没有人捕获就会进入到该方法中,并且在回调函数调用后异常会中止

异常处理的执行顺序:

 异常的代码放在try代码块内,如果没有触发异常,则代码继续执行,如果异常被触发,就会抛出一个异常。Catch代码块捕获异常,并创建一个包含异常信息的对象。$e->getMessage(),输出异常的错误信息。

详细的代码实现,下次再补上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值