php自定义错误处理和try{}catch(){}学习
<?php
//语法错误
//运行时的错误
//逻辑错误
//php的错误报告级别
// display_errors;
// ini_set("display_errors", "On");
// error_reporting();
// error_reporting = E_ALL &~ E_NOTICE; //除了什么以外
error_reporting(0); //屏蔽系统的错误信息
function error_handler($errLevel, $errMsg, $errFile, $errLine){
switch($errLevel){
case E_NOTICE;
case E_USER_NOTICE;
$errType = "notice";
break;
case E_WARNING;
case E_USER_WARNING;
$errType = "warning";
break;
case E_ERROR;
case E_USER_ERROR;
$errType = "error";
break;
default:
$errType = "UnKnown";
}
printf("错误的级别为:%s,错误的信息为:%s,发送在%s的%s行", $errLevel, $errMsg, $errFile, $errLine);
}
set_error_handler("error_handler"); //用这个函数来调用自己定义错误函数
// echo $err; //如何屏蔽这些系统的错误级别信息
echo 3/0;
trigger_error("这是一个自定义的错误", E_USER_ERROR); //用户自定义一个错误
?>
<?php
/* 写错误日志
先配置php.ini:
error_reporting = E_ALL
display_errors = Off
log_errors = On
log_errors_max_log = 1024
error_log = G:/myerror.log //去除前面的分号就是开启
*/
error_log("这是一个错误信息"); //用这个函数,就可以向我们配置好的日子文件中发送错误信息
?>
<?php
//try{}catch(){}抛出异常学习
//创建可抛出一个异常的函数
function checkNum($number){
if($number>1){
throw new Exception("Value must be 1 or below");
}
return true;
}
//在 "try" 代码块中触发异常
try{
checkNum(2); //这时候会抛出一个异常,这个异常将会被下面的catch捕获
//如果没有异常,返回的就是true,就会执行下面的代码
//如果异常被抛出,那么下面一行代码将不会被输出,跳到catch()捕获这个异常
echo 'If you see this, the number is 1 or below';
}catch(Exception $e){ //$e 是一个对象
//捕获异常
echo "<pre>";
print_r($e);
echo "</pre>";
// echo $e->getCode();
echo 'Message: ' .$e->getMessage();
}
?>
<?php
//再看一个实例
try{
$i = 5;
if($i < 10){
throw new exception("$i must greater than 10"); //抛出异常
}
}catch(Exception $e){ //捕获异常
// echo $e->getMessage();
throw new exception('errorinfo');
}
?>
php自定义错误处理和try{}catch(){}学习的更多相关文章
- ReactiveX 学习笔记(8)错误处理和 To 操作符
Error Handling Operators Operators to Convert Observables 本文的主题为对 Observable 进行错误处理的操作符以及转换 Observab ...
- php错误处理和php异常处理机制
php错误处理 当我们开发程序时,有时候程序出现了问题,我们就可以用以下几种办法找出错误. 开发阶段:开发时输出所有的错误报告,有利于我们进行程序调试 运行阶段:我们不要让程序输出任何一种错误报 ...
- 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧
目录 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧 25.1 Shell中的色彩处理 25.2 awk基本应用 25.2.1 概念 25.2.2实例演示 25.3 awk ...
- PHP学习笔记三十三【自定义错误处理器】
<?php //自定义错误处理器 //$errorno 错误号 //$errmes错误信息 //这两个参数是必须的 function my_error($errorno,$errmes) { e ...
- Flask的错误日志处理和|ORM操作
flask有个很人性化的处理就是 你的错误的输出是可以通过错误日志来自定义 ,让你输入的错误不再是“大黄页”, 通过 errorhandler()来装饰函数之后你的所有的输入错误的函数你都会进入这个 ...
- PHP自定义错误处理
自定义错误报告的处理方式,可以完全绕过标准的PHP错误处理函数,这样就可以按照自己定义的格式打印错误报告,或改变错误报告打印的位置(标准PHP的错误报告是哪里发生错误就在发生位置处显示).以下几种情况 ...
- 解决 ASP.NET Core 自定义错误页面对 Middleware 异常无效的问题
我们基于 Razor Class Library 实现了自定义错误页面的公用类库(详见之前的随笔),但是在实际使用时发现如果在 middleware 中发生了异常,则不能显示自定义错误页面,而是返回默 ...
- C++复习8.异常处理和RTTI
C++异常处理和RTTI技术 20130930 1.异常处理的基本知识 C语言中是没有内置运行时错误处理机制,对于错误发生的时候使用的几种处理机制: 函数返回彼此协商后统一定义的状态编码来表示操作成功 ...
- ASP.NET Core中显示自定义错误页面-增强版
之前的博文 ASP.NET Core中显示自定义错误页面 中的方法是在项目中硬编码实现的,当有多个项目时,就会造成不同项目之间的重复代码,不可取. 在这篇博文中改用middleware实现,并且放在独 ...
随机推荐
- poi读写word模板 / java生成word文档
有一word文档表格 形如: 姓名 ${name} 电话 ${tel} 从数据库读取记录替换上述变量 import java.io.FileOutputStream; import java.util ...
- C++ 'dynamic_cast' and Java 'instanceof' 使用对比
在Java中,如果A是基类,B是A的派生类,那么instanceof可以用来判断一个实例对象是A还是B,相当于一个二元操作符,但与==, >, < 不同的是,它是由字母组成,是Java的保 ...
- 大数据技术hadoop入门理论系列之二—HDFS架构简介
HDFS简单介绍 HDFS全称是Hadoop Distribute File System,是一个能运行在普通商用硬件上的分布式文件系统. 与其他分布式文件系统显著不同的特点是: HDFS是一个高容错 ...
- html5文章 -- 应用HTML5 开发手机APP
因为HTML5暂时无法短期内在PC普及,主要方向在使用高端浏览器的高端移动设备,所以可以用作开发Android系统的App.但只有Android2.2以上.iOS3.2以上均支持HTML5,两大平台有 ...
- Mui - 全局css
头部(mh) <header class="mui-bar mui-bar-nav"> <a class="mui-action-back mui-ic ...
- 在Excel中实现查询功能
$sn = Read-Host -Prompt "请输入员工号|序列号|资产号" $xl = New-Object -ComObject "Excel.Applicati ...
- CentOS 6.5下源码安装MySQL 5.6
变量lower_case_file_system说明是否数据目录所在的文件系统对文件名的大小写敏感.ON说明对文件名的大小写不敏感,OFF表示敏感. 在my.cnf中[mysqld]更改lower_c ...
- Lamda表达式
Lamda表达式 函数式编程的产生(匿名内部类) interface Mes{ public void speak(); } public class Lam { public static void ...
- JavaScript系列:event.bubbles属性(并不是所有的事件都具有冒泡)
地址 https://www.w3.org/TR/DOM-Level-3-Events/#h3_interface-Event https://segmentfault.com/q/101000000 ...
- ASP.NET\ASP.NET MVC表单提交遇到的问题结论
同步提交的两种基本方式 1,用type=“submit”按钮.form没有必要runat=“server” <form method="post" action=" ...