php错误消息捕获
<?php
header('Content-type:text/html;charset=UTF-8');
//function_exists('ini_set') && ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);
register_shutdown_function(array('debug', 'shutdown_handler')); //function_exists('ini_set') && ini_set('display_errors', 'On');
set_error_handler(array('debug', 'error_handler')); // 设置错误处理方法
set_exception_handler(array('debug', 'exception_handler')); // 设置异常处理方法 class debug{
public static function shutdown_handler() {
if($e = error_get_last()) {
ob_clean();
echo "Shutdown: \n" . print_r($e);
}
} public static function error_handler($errno, $errstr, $errfile, $errline) {
defined('E_DEPRECATED') || define('E_DEPRECATED', 8192);
defined('E_USER_DEPRECATED') || define('E_USER_DEPRECATED', 16384); $error_type = array(
E_ERROR => '运行错误',
E_WARNING => '运行警告',
E_PARSE => '语法错误',
E_NOTICE => '运行通知',
E_CORE_ERROR => '初始错误',
E_CORE_WARNING => '初始警告',
E_COMPILE_ERROR => '编译错误',
E_COMPILE_WARNING => '编译警告',
E_USER_ERROR => '用户定义的错误',
E_USER_WARNING => '用户定义的警告',
E_USER_NOTICE => '用户定义的通知',
E_STRICT => '代码标准建议',
E_RECOVERABLE_ERROR => '致命错误',
E_DEPRECATED => '代码警告',
E_USER_DEPRECATED => '用户定义的代码警告',
); $errno_str = isset($error_type[$errno]) ? $error_type[$errno] : '未知错误';
$s = "[$errno_str] : $errstr";
if(true) {
throw new Exception($s);
}else{
// 线上模式放宽一些,只记录日志,不中断程序执行
if(in_array($errno, array(E_NOTICE, E_USER_NOTICE, E_DEPRECATED))) {
// log::write($s);
}else{
throw new Exception($s);
}
}
} public static function exception_handler($e) {
$trace = $e->getTrace();
if(!empty($trace) && $trace[0]['function'] == 'error_handler' && $trace[0]['class'] == 'debug') {
$message = $e->getMessage();
$file = $trace[0]['args'][2];
$line = $trace[0]['args'][3];
}else{
$message = '[程序异常] : '.$e->getMessage();
$file = $e->getFile();
$line = $e->getLine();
} var_dump($message);
}
} echo $d;
echo ed();
php错误消息捕获的更多相关文章
- php屏蔽错误消息
定义和用法: error_reporting() 设置 PHP 的报错级别并返回当前级别. 函数语法: error_reporting(report_level) 如果参数 level 未指定,当前报 ...
- php异常及错误信息捕获并记录日志实现方法全解析
php异常处理 什么是异常? PHP 5 提供了一种新的面向对象的错误处理方法.异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程.这种情况称为异常. 当异常被触发时,通常会发生: 当前代码 ...
- 允许asp.net MVC报 错说明: 访问服务此请求所需的资源时出错。服务器可能未配置为访问所请求的 URL。错误消息 401.2。: 未经授权
运行mvc3程序报以下错误 详细报错如下: “/”应用程序中的服务器错误. 访问被拒绝. 说明: 访问服务此请求所需的资源时出错.服务器可能未配置为访问所请求的 URL. 错误消息 401.2.: 未 ...
- "错误消息 401.2。: 未经授权: 服务器配置导致登录失败。"的解决办法
[详细报错如下]: “/”应用程序中的服务器错误. 访问被拒绝. 说明: 访问服务此请求所需的资源时出错.服务器可能未配置为访问所请求的 URL. 错误消息 401.2.: 未经授权: 服务器配置导致 ...
- 数据连接到 Web 服务 InfoPath 2010 窗体中的 SharePoint 服务器上运行时的错误消息:"401-未经授权"解决方案
症状: 请考虑以下情形: Web 窗体发布到 SharePoint 服务器. 您创建 Microsoft InfoPath 2010 表单所在的 SharePoint 服务器上使用到位于数据的数据连接 ...
- knockout-validation不自动插入错误消息
<div data-bind="validationOptions:{insertMessages:false}"> <div class="valid ...
- IE调试网页之四:F12 开发人员工具控制台错误消息 (Windows)(转载)
F12 工具控制台可以报告在运行时期间发生的错误和信息消息.本文将介绍错误消息,并提供有关如何修正这些错误的建议. 简介 F12 工具控制台错误消息提供了一些代码(例如,SEC7111 或 HTML1 ...
- SpringMVC——类型转换和格式化、数据校验、客户端显示错误消息
在介绍类型转换和格式化之前,我首先来介绍 <mvc:annotation-driven />. 需要导入的 schema: xmlns:mvc="http://www.sprin ...
- 在SQL2008R2查询分析器出错(在执行批处理时出现错误。错误消息为: 目录名称无效。)
在用SQL2008R2查询分析器时 SELECT * FROM 表名; 出错: 在执行批处理时出现错误.错误消息为: 目录名称无效. 原因: 在打开查询分析器时,用360软件清空了临时文件(只是偶尔1 ...
随机推荐
- 嵌入式系统 Boot Loader 技术内幕
转载:http://www.ibm.com/developerworks/cn/linux/l-btloader/index.html 1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统 ...
- Windows Service 之 安装失败后的删除
一个windows服务在卸载之后并不会马上从服务列表中消失掉,而是在服务列表中会显示服务被禁用:这样在你需要再次安装同名服务时,就装不了了,会被提示同名的服务已经存在.如果是在本地安装,这种情况很容易 ...
- Android(java)学习笔记108:通过反射获取私有构造方法并且使用
反射获取私有构造方法并且使用: 1.获取字节码文件.class对象: Class c = Class.forName("cn.itcast_01.Person") ...
- [设计模式]<<设计模式之禅>>关于开闭原则
开闭原则是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的.灵活的系统,先来看开闭原则的定义: Software entities like classes,modules and fun ...
- 关于JDK中正则表达式
正则表达式的构造摘要 构造 匹配 字符 x 字符 x \\ 反斜线字符 \0n 带有八进制值 0 的字符 n (0 <= n <= 7) \0nn 带有八进制值 0 的字符 nn ...
- Evaluation of Expression Tree
Evaluation of Expression Tree Given a simple expression tree, consisting of basic binary operators i ...
- CSS3动画与过渡
transform:在使用2D或3D转换前需用transform-style申明转换的类型,preserve-3d或者preserve-2d 属性 translate(): 通过 translate( ...
- css3 颜色记
css3 颜色 opacity 使元素呈现出半透明效果. opacity:alphavalue || inherit alphavalue:默认值为1,可以取0~1任意浮点数.取值为1时,元素完全不透 ...
- C#算法基础之冒泡排序
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Excel日期格式单元格写成yyyy.MM.dd格式将无法读取到DataTable
最近在改公司的订单系统,遇到了一个奇怪的问题.C#程序需要从Excel文件中将数据全部读取到DataTable,其中Excel文件的第一列是日期格式yyyy/MM/dd,而这一列中大部分的单元格都是按 ...