php统一处理异常,PHP异常处理
PHP异常处理
Try、throw和catch
1、Try - 使用异常的函数应该位于 "try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
2、Throw - 里规定如何触发异常。每一个 "throw" 必须对应至少一个 "catch"。
3、Catch - "catch" 代码块会捕获异常,并创建一个包含异常信息的对象。
创建一个处理异常函数:
function checkNum($number){
if($number>1){
throw new Exception("变量值必须小于等于1");
}
return true;
}
//将会出错的代码放入try里
try{
checkNum(2);
}
//捕获异常
catch(Exception $e)
{
//通过从这个 exception 对象调用 $e->getMessage(),输出来自该异常的错误消息。
echo 'ErrorMeaasge'.$e->getMessage();
}
创建一个自定义的Exception类
创建一个customException类,继承了PHP和的exception的类的所有属性,比如getLine()、getFile()和getMessage()。
customException类:
class customerException extends{
public function errorMessage(){
//错误信息
$errorMessage = '错误行号'.$this->getLine()."错误信息".this->getMessage().'in'.$this->getFile();
return $errorMessage;
}
}
$email = "someone@example.com";
try{
if(filter_var($email,FILTER_VARIDATE_EMAIL)===FALSE){
//如果不是合法的邮箱地址,抛出异常
throw new customerException($email);
}
}
catch(customerException $e){
echo $e->errorMessage();
}
重新抛出异常
class customException extends Exception
{
public function errorMessage()
{
// 错误信息
$errorMsg = $this->getMessage().' 不是一个合法的 E-Mail 地址。';
return $errorMsg;
}
}
$email = "someone@example.com";
try
{
try
{
// 检测 "example" 是否在邮箱地址中
if(strpos($email, "example") !== FALSE)
{
// 如果是个不合法的邮箱地址,抛出异常
throw new Exception($email);
}
}
catch(Exception $e)
{
// 重新抛出异常
throw new customException($email);
}
}
catch (customException $e)
{
// 显示自定义信息
echo $e->errorMessage();
}
?>
标签:处理,throw,try,getMessage,catch,PHP,异常,email
来源: https://www.cnblogs.com/liaopeng123/p/11555510.html
php统一处理异常,PHP异常处理相关推荐
- 利用spring aop统一处理异常和打日志
利用spring aop统一处理异常和打日志 spring aop的概念,很早就写博客介绍了,现在在工作中真正使用. 我们很容易写出的代码 我们很容易写出带有很多try catch 和 logger. ...
- 异常以及异常处理框架探析
摘要:本文主要与您探讨异常以及异常处理相关方面的一些知识,主要包括检查异常与非检查异常的理解,多视角观察理解异常,进而探讨关于构建稳健且可扩展的异常框架方面的一些设计原则. 概述 一般情况下,企业级应 ...
- 统一返回对象和异常处理(一)
统一返回对象 package com.demo1.rsponse;public class Result<T> {/** 错误码. */private Integer code;/** 提 ...
- SpringMVC第六篇【校验、统一处理异常】
Validation 在我们的Struts2中,我们是继承ActionSupport来实现校验的-它有两种方式来实现校验的功能 手写代码 XML配置 这两种方式也是可以特定处理方法或者整个Action ...
- try catch对异常进行输出到日志、_spring Boot手把手教学(7): 抛弃try-catch, 如何优雅统一处理异常(含404)...
1.前言 2.自定义异常处理 3.完整代码 1.前言 我们在项目开发中,难免碰到业务代码异常,无论是server 500, 还是其他异常. 我们这里简单说一下,如果抛弃try-catch,统一进行异常 ...
- jsp获取静态服务器文件路径,11、统一处理异常、处理静态资源访问、项目中的绝对地址跟相对地址问题...
一.项目中的相对地址和绝对地址问题 在jsp,html中使用的地址,都是在前端页面中的地址,都是相对地址 地址分类: 1.绝对地址 , 带有协议名称的是绝对地址, http://www.baidu. ...
- 阿里的nacos+springboot+dubbo2.7.3集成以及统一处理异常的两种方式
在网上很多关于dubbo异常统一处理的博文,90%都是抄来抄去.大多都是先上一段dubbo中对于异常的统一处理的原码,然后说一堆的(甚至有12345,五种)不靠谱方案,最后再说"本篇使用的是 ...
- 8、统一处理异常(控制器通知@ControllerAdvice全局配置类、@ExceptionHandler统一处理异常)
SpringBoot设计,如果出现错误404或500,自动调用特定路径下的html页面(路径和名字都特定)./templates/error/404.html./templates/error/500 ...
- asp.net MVC 过滤器使用案例:统一处理异常顺道精简代码
asp.net MVC 过滤器使用案例:统一处理异常顺道精简代码 参考文章: (1)asp.net MVC 过滤器使用案例:统一处理异常顺道精简代码 (2)https://www.cnblogs.co ...
最新文章
- 基于深度学习的医学图像配准综述
- 中国铁建内网漫游沦陷多个重要部门泄漏大量信息(redis+ssh-keygen免认证登录案例)...
- 用shell编写的贪吃蛇游戏
- 值对于int32太大或太小怎么解决_深孔加工10种常见问题及解决措施,条条都是宝贝!...
- 前端笔试题(附答案)
- mysql最左_Mysql最左原则
- 白话经典算法系列之——希尔排序的实现
- 苹果六电池_【行业分析】特斯拉“电池日”前夕供应链个股备受关注 溶剂龙头石大胜华DMC等需求量有望大增...
- jmeter报“msg“:“Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported“的解决方法
- call()函数、apply()函数区别与意义
- 中科院计算机所网络安全,中科院着力培养网络空间安全人才
- html中出现的script失效
- 按键精灵手机助手之数学函数
- 软件逆向工具常用快捷键
- 点亮LED灯——arduino 学习第一天
- 迈入高端市场,荣耀凭什么?
- 两种方法:在 PowerPoint 中插入视频
- 第二届“大数据在清华”高峰论坛,敬请期待!
- 【面试题】概率题总结(随机数、抛硬币)
- php2-3v690,php网页版文件浏览器
热门文章
- 使用单/多线程执行程序展示
- go 怎么等待所有的协程完成_Go语言中的sync.Cond 的特点与用法
- vscode 翻译_前端新手 VSCode 入门指南
- java entrypoint_java – 有时只调用AuthenticationEntryPoint
- P3:线性分类、损失函数与梯度下降
- poj3179 Corral the Cows(二分, 前缀和, 离散化, 双指针)
- 《南溪的目标检测学习笔记》——DCN(DCNv2)的学习笔记
- End-to-end目标检测算法的学习笔记
- Python——itertools.chain.from_iterable将多个迭代器连接成一个统一的迭代器的最高效的方法
- GAN——欧几里得空间