php7异常与错误处理

异常与错误的概述

什么叫作异常?

异常是指程序运行中不符合预期状况以及与正常流程不一样的情况。php

好比你连接数据库,在参数都写上去的条件下,发现连接不上去,这就属于不符合预期 html

能够被 try-catch 捕捉获得thinkphp

什么叫作错误?

是属于php程序自身的问题,通常是由非法的语法,环境问题致使的,使得编译器没法经过检查,甚至没法运行的状况。
平时遇到的 warming、notice都是错误,只是级别不一样而已。 数据库

例如:segmentfault

  • TypeError(类型错误) 我规定的函数参数类型和传入的参数不一致
  • ArithmeticError (算数错误)
  • ParseError (解析错误)在调入的文件中,include "demo.php",或者 eval();中有语法错误形成解析失败
  • AssertionError(断言错误)当assert生效时产生该错误
  • DivisionByZeroError (分母为零) 运算过程当中例如除法,分母为0

错误的级别

在 php 中的错误也是有级别的框架

Parse error >Fatal Error > Waning > Notice > Deprecated函数

Deprecated 最低级别的错误(不推荐,不建议)
使用一些过时函数的时候会出现,程序继续执行

Notice 通知级别的错误
使用一些未定义变量、常量或者数组key没有加引号的时候会出现,程序继续执行
        E_NOTICE      // 运行时通知。表示脚本遇到可能会表现为错误的状况.
        E_USER_NOTICE // 用户产生的通知信息。
        
Waning 警告级别的错误
程序出问题了,须要修改代码!!!程序继续执行
        E_WARNING         // 运行时警告 (非致命错误)。
        E_CORE_WARNING    // PHP初始化启动过程当中发生的警告 (非致命错误) 。
        E_COMPILE_WARNING // 编译警告
        E_USER_WARNING    // 用户产生的警告信息
        
Fatal Error 错误级别的错误
程序直接报错,须要修改代码!!!中断程序执行,可以使用register_shutdown_function()函数在程序终止前触发一个函数
        E_ERROR         // 致命的运行错误,错误没法恢复,暂停执行脚本
        E_CORE_ERROR    // PHP启动时初始化过程当中的致命错误
        E_COMPILE_ERROR // 编译时致命性错,就像由Zend脚本引擎生成了一个E_ERROR
        E_USER_ERROR    // 自定义错误消息。像用PHP函数trigger_error(错误类型设置为:E_USER_ERROR)
        
Parse error 语法解析错误
语法检查阶段报错,须要修改代码!!!中断程序执行,除了修改ini文件,将错误信息写到日志中,什么也作不了
        E_PARSE  //编译时的语法解析错误

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章