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异常处理相关推荐

  1. 利用spring aop统一处理异常和打日志

    利用spring aop统一处理异常和打日志 spring aop的概念,很早就写博客介绍了,现在在工作中真正使用. 我们很容易写出的代码 我们很容易写出带有很多try catch 和 logger. ...

  2. 异常以及异常处理框架探析

    摘要:本文主要与您探讨异常以及异常处理相关方面的一些知识,主要包括检查异常与非检查异常的理解,多视角观察理解异常,进而探讨关于构建稳健且可扩展的异常框架方面的一些设计原则. 概述 一般情况下,企业级应 ...

  3. 统一返回对象和异常处理(一)

    统一返回对象 package com.demo1.rsponse;public class Result<T> {/** 错误码. */private Integer code;/** 提 ...

  4. SpringMVC第六篇【校验、统一处理异常】

    Validation 在我们的Struts2中,我们是继承ActionSupport来实现校验的-它有两种方式来实现校验的功能 手写代码 XML配置 这两种方式也是可以特定处理方法或者整个Action ...

  5. try catch对异常进行输出到日志、_spring Boot手把手教学(7): 抛弃try-catch, 如何优雅统一处理异常(含404)...

    1.前言 2.自定义异常处理 3.完整代码 1.前言 我们在项目开发中,难免碰到业务代码异常,无论是server 500, 还是其他异常. 我们这里简单说一下,如果抛弃try-catch,统一进行异常 ...

  6. jsp获取静态服务器文件路径,11、统一处理异常、处理静态资源访问、项目中的绝对地址跟相对地址问题...

    一.项目中的相对地址和绝对地址问题 在jsp,html中使用的地址,都是在前端页面中的地址,都是相对地址 地址分类: 1.绝对地址 , 带有协议名称的是绝对地址,  http://www.baidu. ...

  7. 阿里的nacos+springboot+dubbo2.7.3集成以及统一处理异常的两种方式

    在网上很多关于dubbo异常统一处理的博文,90%都是抄来抄去.大多都是先上一段dubbo中对于异常的统一处理的原码,然后说一堆的(甚至有12345,五种)不靠谱方案,最后再说"本篇使用的是 ...

  8. 8、统一处理异常(控制器通知@ControllerAdvice全局配置类、@ExceptionHandler统一处理异常)

    SpringBoot设计,如果出现错误404或500,自动调用特定路径下的html页面(路径和名字都特定)./templates/error/404.html./templates/error/500 ...

  9. asp.net MVC 过滤器使用案例:统一处理异常顺道精简代码

    asp.net MVC 过滤器使用案例:统一处理异常顺道精简代码 参考文章: (1)asp.net MVC 过滤器使用案例:统一处理异常顺道精简代码 (2)https://www.cnblogs.co ...

最新文章

  1. 基于深度学习的医学图像配准综述
  2. 中国铁建内网漫游沦陷多个重要部门泄漏大量信息(redis+ssh-keygen免认证登录案例)...
  3. 用shell编写的贪吃蛇游戏
  4. 值对于int32太大或太小怎么解决_深孔加工10种常见问题及解决措施,条条都是宝贝!...
  5. 前端笔试题(附答案)
  6. mysql最左_Mysql最左原则
  7. 白话经典算法系列之——希尔排序的实现
  8. 苹果六电池_【行业分析】特斯拉“电池日”前夕供应链个股备受关注 溶剂龙头石大胜华DMC等需求量有望大增...
  9. jmeter报“msg“:“Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported“的解决方法
  10. call()函数、apply()函数区别与意义
  11. 中科院计算机所网络安全,中科院着力培养网络空间安全人才
  12. html中出现的script失效
  13. 按键精灵手机助手之数学函数
  14. 软件逆向工具常用快捷键
  15. 点亮LED灯——arduino 学习第一天
  16. 迈入高端市场,荣耀凭什么?
  17. 两种方法:在 PowerPoint 中插入视频
  18. 第二届“大数据在清华”高峰论坛,敬请期待!
  19. 【面试题】概率题总结(随机数、抛硬币)
  20. php2-3v690,php网页版文件浏览器

热门文章

  1. 使用单/多线程执行程序展示
  2. go 怎么等待所有的协程完成_Go语言中的sync.Cond 的特点与用法
  3. vscode 翻译_前端新手 VSCode 入门指南
  4. java entrypoint_java – 有时只调用AuthenticationEntryPoint
  5. P3:线性分类、损失函数与梯度下降
  6. poj3179 Corral the Cows(二分, 前缀和, 离散化, 双指针)
  7. 《南溪的目标检测学习笔记》——DCN(DCNv2)的学习笔记
  8. End-to-end目标检测算法的学习笔记
  9. Python——itertools.chain.from_iterable将多个迭代器连接成一个统一的迭代器的最高效的方法
  10. GAN——欧几里得空间