tp5.0错误和调试 及其 抛出异常Exception和\Exception使用区别

调试模式 ‘app_debug’=false; 在应用root_path目录下面定义.env文件,定义app_debug配置参数用于带入口文件的常量定义, (定义了.env文件后,配置文件中的app_debug无效)

调试模式的优势在于 1.开始日志记录 2.会详细记录整个执行过程 3.模板修改可以及时生效 4.记录sql日志,方便分析sql 5.通过trace功能更好的调试和发现错误 6.发生异常的时候会显示详细的异常信息

默认异常处理 异常错误报错级别 error_reporting(E_ERROR | E_PARSE); 显示错误信息 show_error_msg = true

手动抛出异常 think自带异常类抛出异常 throw new \think\Exception(“异常消息”,100086); 亦可以此基础上再次封装比如baseException 以及其子类(一个类对应一个异常)

调试模式不能满足调试需要,需要手动的输出一些调试信息,用到thinkphp的内置调试工具和函数Trace

开启Trace调试 ‘app_trace’=>true, 性能调试 Debug::remark('begin); //… Debug::remark(‘end’); //… echo Debug::getRangeTime(‘begin’,‘end’).‘s’;

404页面及其设置 抛出了HttpException异常,可以支持定义单独的异常页面的模板地址,只需要在应用配置文件中增加 ‘http_exception_template’=>[ 404 => APP_PATH.‘404.html’, 401 = APP_PATH.‘401.html’, ] 注意HttpException 继承RuntimeException 不继承\Think\Exception

php抛出异常Exception和\Exception使用区别

没有定义命名空间的情况下 , Exception和\Exception 均可正常执行抛出异常; 定义命名空间的情况 , Exception 会在定义的命名空间下找对应的异常类 , 如果没有定义异常类 , 则会报错 ; 定义命名空间的情况 , \Exception 会按照php默认的异常类执行抛出异常 ;

建议: 抛出异常 使用 \Exception !

有定义命名空间 使用Exception的情况如下

<?php
namespace Test;

try {
  throw new Exception("抛出异常");
} catch (Exception $e) {
  echo '捕获到异常'.$e->getMessage();
}

结果 Fatal error: Uncaught Error: Class 'Test\Exception' not found *** Stack trace: #0 {main} thrown in ***

记录你我
请先登录后发表评论
  • latest comments
  • 总共0条评论