php 处理错误和异常技巧
set_time_limit(0);
ini_set('memory_limit','1024M'); function exception_handler($exception) {
echo "Uncaught exception: " , $exception->getMessage(), "\n";
} set_exception_handler('exception_handler'); function customError($errno, $errstr)
{
throw new Exception($errstr);
}
set_error_handler("customError", E_ALL); try{
//throw new Exception('Uncaught Exception');
trigger_error("Cannot divide by zero", E_USER_ERROR);
}catch(Exception $e){
throw new Exception($e->getMessage());
}
echo '111';
exit;
上面把产生错误(包含警告)时,抛出异常,就把错误处理交给自定义的异常处理方法处理了
try{ ... }catch(Exception $e){ ... } try段里如果抛出异常,有catch,则对应catch处理;无catch,则set_exception_handler自定义异常处理,如无自定义异常处理,则选择php语言本身的异常处理方式。try段里如果产生错误,有set_error_handler自定义处理处理,则选择定义处理处理,如无,则选择php语言本身的错误处理方式。很明显上面代码set_error_handler自定义处理是抛出异常,等同于最终统一了错误和异常处理方式都是交给set_exception_handler自定义的异常处理。
上面代码可以不用显示catch语句,效果等同。
set_time_limit(0);
ini_set('memory_limit','1024M'); function exception_handler($exception) {
echo "Uncaught exception: " , $exception->getMessage(), "\n";
} set_exception_handler('exception_handler'); function customError($errno, $errstr)
{
throw new Exception($errstr);
}
set_error_handler("customError", E_ALL); try{
//throw new Exception('Uncaught Exception');
trigger_error("Cannot divide by zero", E_USER_ERROR);
}
echo '111';
exit;
php 处理错误和异常技巧的更多相关文章
- python的错误和异常
python错误和异常 错误 错误分为语法错误和逻辑错误 语法错误 >>> if File "<stdin>", line 1 if ^ Syntax ...
- Python错误和异常学习
一:错误解释 1.语法错误:代码不符合解释器或者编译器语法 2.逻辑错误:不完整或者不合法输入或者计算出现问题 代码运行前的语法或者逻辑错误,语法错误在执行前修改,逻辑错误无法修改 二:异常 执行过程 ...
- PHP 错误与异常 笔记与总结(10)错误处理器测试
关联文件:myErrorHandler.php (上一篇) 先测试通知级别的错误的自定义处理: testErrorHandler.php <?php require_once 'myErrorH ...
- Go语言项目的错误和异常管理 via 达达
Go语言项目的错误和异常管理 最近连续遇到朋友问我项目里错误和异常管理的事情,之前也多次跟团队强调过错误和异常管理的一些概念,所以趁今天有动力就赶紧写一篇Go语言项目错误和异常管理的经验分享. 首先我 ...
- Python学习笔记七-错误和异常
程序员总是和各种错误打交道,学习如何识别并正确的处理程序错误是很有必要的. 7.1错误和异常 1.错误 从软件方面来看,错误分为语法错误和逻辑错误两种.这两种错误都将导致程序无法正常进行下去,当Pyt ...
- WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作)
WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作) 好吧,还是那个社区APP,非管理系统,用户行为日志感觉不是很必要的,但是,错误日 ...
- php错误及异常捕捉
原文:php错误及异常捕捉 在实际开发中,错误及异常捕捉仅仅靠try{}catch()是远远不够的. 所以引用以下几中函数. a) set_error_handler 一般用于捕捉 E_NOTI ...
- PHP错误与异常
请一定要注意,没有特殊说明:本例 PHP Version < 7 说起PHP异常处理,大家首先会想到try-catch,那好,我们先看一段程序吧:有一个test.php文件,有一段简单的PHP程 ...
- python 常见错误和异常 函数 正则表达式及多线程编程
生成随机密码#!/usr/bin/env python import stringfrom random import choice def gen_pass(num=9): all_chs = st ...
随机推荐
- Hive-生成一个大文件(小文件合并)
set hive.execution.engine=mr; --在 map-reduce 作业结束时合并小文件.如启用,将创建 map-only 作业以合并目标表/分区中的文件. set hive.m ...
- CentOS7 安装SQLCMD
1. Study From https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-setup-tools?view=sql-serve ...
- linux通信之信号
一. 信号介绍 1.1. 什么是信号 1.1.1. 信号是内容受限的一种异步通信机制 a. 之所以称之为受限是因为通信内容在OS已经规定,内容简单,单一(signal.h文件中定义好) b. 信号本质 ...
- 三、JVM — 类加载过程
类加载过程 加载 验证 准备 解析 初始化 类加载过程 Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚拟机是如何加载这些 Class 文件呢? 系统加载 Class 类型的文件主要三步: ...
- RMQ 模板
RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为 n的数列A,回答若干次询问RMQ(i,j),返回数列A中下标在区间[i,j]中的最小/大 ...
- html5动画之等待加载动画
<div class="loading"> <p>100<span></span></p> </div> ; ...
- C#.NET、Power BI、数据挖掘
阅读目录 1.采集目目标特点与分析 2.方案第一版-Low到爆,别笑话 3.碰壁后的第二版方案 4.最终方案第三版 5.总结 说起采集,其实我是个外行,以前拔过阿里巴巴的客户数据,在我博客的文章:C# ...
- thinkphp5 select对象怎么转数组?
DB操作返回是数组.模型直接操作返回是对象 对象类型转换数组打开 database.php 增加或修改参数'resultset_type' => '\think\Collection',即可连贯 ...
- python基础操作---tuple
#coding:utf-8 tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, 3, 4, 5 ); tup3 = "a&q ...
- Codeforces 913 二进制背包(柠檬水) 暴力贪心特殊背包(选题)
A B C 给你N(N<=30)种水瓶每种水瓶有无限个 每个的体积是2^(i-1)价格是cost[i] 要求你花最少的钱弄出L体积的水 先从前到后扫一遍cost[i+1]=min(cost[i+ ...