php异常处理笔记
<?php
header("Content-type:text/html;charset=utf-8");
// try
// {
// //业务处理 错误时抛出异常。
// $age = 130;
// if ($age > 120) {
// throw new Exception('年龄不能大于120岁。', 1001);
// }
// } catch (Exception $e) {
// $err = [
// 'code' => $e->getCode(),
// 'msg' => $e->getMessage(),
// 'file' => $e->getFile(),
// 'line' => $e->getLine()
// ];
// echo json_encode($err,JSON_UNESCAPED_UNICODE);
// }
/**
* 自定义异常处理
*/
// class myException extends Exception
// {
// //根据业务需求,自定义方法
// /**
// * 获取错误信息
// * @param int $type 类型 1=json 2=数组
// * @return array
// */
// public function getErrorInfo($type=1)
// {
// $err = [
// 'code'=>$this->getCode(),
// 'msg'=>$this->getMessage(),
// 'file'=>$this->getFile(),
// 'line'=>$this->getLine()
// ];
// if($type==1){
// return json_encode($err,JSON_UNESCAPED_UNICODE);
// exit();
// }
// return $err;exit();
// }
// } // try{
// $age = '130';
// if($age>120){
// throw new myException("年龄不能大于120岁。", 1001);
// }
// }catch(myException $e){
// $info = $e->getErrorInfo(1);
// var_dump($info);
// }catch(Exception $e){
// var_dump($e->getMessage);
// } //禁止错误输出
error_reporting(0);
//设置错误处理器
set_error_handler('errorHandler');
//在脚本结束时运行的函数
register_shutdown_function('fatalErrorHandler'); /**
* 错误处理
* @param int $err_no 错误代码
* @param string $err_msg 错误信息
* @param string $err_file 错误文件
* @param int $err_line 错误行号
* @return string
*/
function errorHandler($err_no = 0, $err_msg = '', $err_file = '', $err_line = 0)
{
// $log = [
// '['.date('Y-m-d h-i-s').']',
// '|',
// $err_no,
// '|',
// $err_msg,
// '|',
// $err_file,
// '|',
// $err_line
// ];
var_dump($err_msg.' in '.$err_line);
//echo implode(' ',$log)."<br>";
} /**
* 捕捉致命错误
* @return string
*/
function fatalErrorHandler() {
$e = error_get_last();
switch ($e['type']) {
case 1:
errorHandler($e['type'], $e['message'], $e['file'], $e['line']);
break;
}
} class DemoClass_1
{
public function index()
{
//这里发生一个警告错误,出发errorHandler
$ee=['1'=>2];
echo $ee;
}
} $demo_1 = new DemoClass_1();
//这里发生一个警告错误,被errorHandler 捕获
$demo_1->index();
//发生致命错误,脚本停止运行触发 fatalErrorHandler
// $demo_2 = new DemoClass_2();
// $demo_2->index();
php异常处理笔记的更多相关文章
- PHP错误处理及异常处理笔记
给新人总结一下PHP的错误处理. PHP提供了错误处理和日志记录的功能. 这些函数允许你定义自己的错误处理规则,以及修改错误记录的方式. 这样,你就可以根据自己的需要,来更改和加强错误输出信息以满足实 ...
- Java 异常处理笔记
Java程序运行过程中所发生的异常事件可分为两类: §错误(Error):JVM系统内部错误.资源耗尽等严重情况 §违例(Exception): 其它因编程错误或偶然的外在因素导致的一般性问题,例如: ...
- Java web 服务启动时Xss溢出异常处理笔记
本文来自网易云社区 作者:王飞 错误日志 错误日志要仔细看,第一行不一定就是关键点,这个错误出现的时候,比较靠后,其中关键行就是下面这句. Caused by: java.lang.IllegalSt ...
- Java 学习笔记 IO流与File操作
可能你只想简单的使用,暂时不想了解太多的知识,那么请看这里,了解一下如何读文件,写文件 读文件示例代码 File file = new File("D:\\test\\t.txt" ...
- 利用superlance监控supervisor运行状态
此文已由作者张家裕授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 最近开发问到supervisor管理下的进程重启了,有无办法做到主动通知,楼主最先想到的是superviso ...
- hadoop中的序列化
此文已由作者肖凡授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 最近在学习hadoop,发现hadoop的序列化过程和jdk的序列化有很大的区别,下面就来说说这两者的区别都有 ...
- InnoDB透明页压缩与稀疏文件
此文已由作者王慎为授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. MySQL 5.7中包括了很多让人耳目一新的新特性,其中就包括了InnoDB Transparent Pag ...
- python 学习笔记3(循环方式;list初始化;循环对象/生成器/表推导;函数对象;异常处理)
### Python的强大很大一部分原因在于,它提供有很多已经写好的,可以现成用的对象 16. 循环方式笔记: 1)range(0, 8, 2) #(上限,下限,步长) 可以实现对元素或者下标的 ...
- [原创]java WEB学习笔记60:Struts2学习之路--Actioin-声明式异常处理
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- HDU3533(Escape)
不愧是kuangbin的搜索进阶,这题没灵感写起来好心酸 思路是预处理所有炮台射出的子弹,以此构造一个三维图(其中一维是时间) 预处理过程就相当于在图中增加了很多不可到达的墙,然后就是一个简单的bfs ...
- 【Linux】命令学习笔记和总结
莫名的想学习一下Linux了,因为对这方面的知识储备为0.对于命令行界面始终是零接触零了解,对一个程序员来说这几乎是致命的,所以简单了解一下. 一.教程参考 参考菜鸟教程即可: Linux 教程 | ...
- java反射——构造方法
大家都知道反射技术在Java里面时非常重要的一个技术点,因为Java好多框架的编写都是基于反射的,别的不多说,spring框架里面的IOC就是基于反射实现.那么什么是反射呢?JAVA反射机制是在运行状 ...
- Oracle Schema Objects——Tables——TableType
Oracle Schema Objects Object Tables object type An Oracle object type is a user-defined type with a ...
- Selenium定位不到指定元素原因之iframe(unable to locate element)
浏览过程中,图片中的内容可能太小,无法看清,可以>右键>在新标签中打开 Outline 项目原因,需要用selenium实现模拟登陆.模拟上传文件,自然就需要模拟点击[上传]按钮: 模拟点 ...
- 流畅的python 使用一等函数实现设计模式
案例分析:重构“策略”模式 经典的“策略”模式 电商领域有个功能明显可以使用“策略”模式,即根据客户的属性或订单中的商品计算折扣.假如一个网店制定了下述折扣规则. 有 1000 或以上积分的顾客,每个 ...
- hibernate set的3个属性
inverse 属性 在hibernate中通过对 inverse 属性的来决定是由双向关联的哪一方来维护表和表之间的关系. inverse = false 的为主动方.inverse = true ...
- servlet 文件下载
[本文简介] 一个servlet 文件下载 的简单例子. [文件夹结构] [java代码] package com.zjm.www.servlet; import java.io.BufferedIn ...
- Java-idea-创建maven项目,部署项目,部署服务器,简单测试
spring-boot项目创建 1.项目创建 使用Idea,File→Project→Spring initalizr,点击next,进行基本配置.此时 一个spring boot项目创建完成. 之后 ...
- golang的多协程实践
go语言以优异的并发特性而闻名,刚好手上有个小项目比较适合. 项目背景: 公司播控平台的数据存储包括MySQL和ElasticSearch(ES)两个部分,编辑.运营的数据首先保存在MySQL中,为了 ...