php uncaught thrown,PHP异常详解

2023-11-14

PHP的异常是什么?

PHP 5 提供了一种新的面向对象的错误处理方法。异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。

一般使用方法:

[php]

'.$this->getMessage().' is not a valid E-Mail address';

return $errorMsg;

}

}

try {

throw new myException($email);

}catch (myException $e){

echo $e->errorMessage();

}

myException类是一个自定义的异常类,必须继承Exception

Exception是一个PHP自带的内置的异常类,默认情况下会使用PHP默认的内置异常类,但是我们可以通过自定义的方式,自定义成满足自己需求的异常类。

使用自定义异常类的时候,throw new myException 抛出异常也需要抛出自定义的异常类类名

catch的时候也需要捕获自定义的异常类

如果抛出了异常而不捕获处理的话,就会发生PHP代码报错,如下:

[sql]

Fatal error: Uncaught exception 'myException' in D:\AppServ\www\cctv\trunk\index.php:12 Stack trace: #0 {main}

thrown in D:\AppServ\www\cctv\trunk\index.php on line 12

PHP默认异常类详细:

[php]

class exception

{

protected $message = 'Unknow exception'; //自定义的异常信息

protected $code = 0; //定义的异常代码

protected $file; //发生异常的PHP程序名

protected $line; //发生异常的PHP行号

//用于传递用户自定义异常信息和用户自定义异常代码的构造函数

function __construct($message=null,$code=0);

final function getMessage();

final function getCode();

final function getFile();

final function getLine();

final function getTrace(); //以数组形式返回异常传递的路线

final function getTraceAsString(); //返回格式化成字符串的getTrace函数信息

function __toString(); //可重载,用于返回可输出的字符串

}

可以看到PHP默认异常类中有很多自定义变量和方法

$e->getMessage 一般是获取错误信息

$e->getCode() 一般是获取错误码

$e->getFile() 获取错误的文件信息

$e->getLine() 获取错误行数

$e->getTrace() 异常经过的文件路径

__toString() 一般可以重载,用于返回可输出的字符串

PHP异常类的作用:

捕获异常,一般可以在MYSQL链接不上,或者业务逻辑错误的时候,抛出异常,在代码最顶端接收。

异常分析处理。可以在出异常的时候,捕获到异常的错误信息,写入日志。

可以返回友好化的提示信息,例如WEB端可以返回页面形式,也可以在AJAX端返回JSON数据格式。

原则:如果异常抛出了,就必须捕获它,否则会PHP报错。

作者:initphp

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php uncaught thrown,PHP异常详解 的相关文章

  • 中继器、集线器、网桥、交换机、路由器、网关的超全总结

    计算机网络体系中 有几样通信设备或者说网络名词出现的频率相当的高 它们是 中继器 集线器 网桥 交换机 路由器和网关 初学者或者非专业者可能会对这几个名词的含义和作用感到模糊不清 经常把这几个名词给混淆了 其实 弄清楚这几个计算机网络的名词
  • Qt学习笔记1

    1 确定代码书写位置 pro 用于生成可执行文件 main cpp 主函数 widget cpp 类的函数 一般情况窗口的属性和添加控件和对控件的操作都会在类的构造函书写 widget h 类和头文件 2 确定使用那些函数 QT助手 3 创
  • jQuery获取格式化当前时间

    一 重构Date对象 对Date的扩展 将 Date 转化为指定格式的String 月 M 日 d 小时 h 分 m 秒 s 季度 q 可以用 1 2 个占位符 年 y 可以用 1 4 个占位符 毫秒 S 只能用 1 个占位符 是 1 3
  • 边缘计算服务器项目,什么是边缘计算?三分钟看懂

    什么是边缘计算呢 其实关于边缘计算的定义 目前国内还没有一个严格统一的定义 今天小编就给大家整理三个关于边缘计算的说法 帮助大家快速理解什么是边缘计算 1 维基百科说 维基百科上说 边缘计算是一种分散式运算的架构 将应用程序 数据资料与服务
  • 2019牛客国庆集训派对day1

    2019牛客国庆集训派对day1 2019 10 1 国庆练习赛 比赛链接 2019牛客国庆集训派对day1 虽然我国庆七天溜回家了 队友还是督促我好好打比赛 毕竟现场赛也没几天了 好好练习哈 A 全 1 子矩阵 题目大意 判断矩阵是否存在
  • 设计模式:中介模式

    中介模式听名字作为中介 在复杂的调用关系中做个中介传递 类似于在状态机中弄一个中心点 所有的关系状态转移交给中介来处理 同样也是一个重在实用意义 实现结构倒是不要求什么 实际上结构跟观察者比较像 Mediator Design Patter
  • 魔兽世界服务器列表显示不兼容,魔兽世界显示游戏设备驱动不兼容怎么解决_魔兽世界显示游戏设备驱动不兼容解决办法_牛游戏网...

    魔兽世界 显示游戏设备驱动不兼容怎么解决 在客户端更新晋级后登入游戏设备 其显现驱动不兼容 这是因为显卡驱动过期致使 若不挑选更新 亦可经过点击断定按钮越过该提示持续游戏 但每次登录都会呈现 这儿给咱们共享下 魔兽国际 登入显现游戏设备驱动
  • Altium Designer使用-----如果Bill of Materials卡住

    Altium Designer使用 如果Bill of Materials卡住 是没有安装office软件
  • 01背包问题

    01 背包问题 输入 n个商品组成集合O 每个商品有两个属性vi和pi 分别表示体积和价格 背包容量为C 输出 求解一个商品子集包含于O 令价格和最大 容量不超过C 直观上 价格高优先 体积小优先 性价比高优先 都不能得到最优解 解决方案一
  • JDK以及IDEA的安装和配置【JAVA学习--安装配置学习工具】

    目录 一 JDK的安装和环境配置 1 准备工作 2 配置JDK环境变量 3 验证环境配置是否成功 二 安装配置IDEA 创建项目 一 JDK的安装和环境配置 1 准备工作 在Oracal官方网站下载适合自己电脑版本的JDK 并进行安装 注意
  • Linux 查看操作系统

    转载 linux查看操作系统版本信息 这个常用 放在这里备忘 转载上面的链接 一 linux下如何查看已安装的centos版本信息 1 Linux查看当前操作系统版本信息 cat proc version Linux version 2 6
  • Oracle入门笔记(一)——环境配置及简单介绍

    Oracle环境配置及目录结构说明 1 引言 2 Oracle简介 3 Oracle版本迭代说明 4 Oracle的安装与配置 5 Oracle数据库目录介绍 6 Oracle用户说明 7 Oracle启动与关闭 8 参考文献 1 引言 害
  • 负载测试和压力测试的区别

    这两个测试都属于性能测试的一部分 我之前都一直有盲区 每次想起对于这两个概念都不是很清晰 在网上看了一篇文章后 终于有些理解了 特记录下来方便大家理解 这个是网上看到的一篇文章 如果大家还是有些不懂可以在参考一下这篇文章 我所理解的性能测试
  • tp6重定向

    引入 use think exception HttpResponseException 方法 public function redirect args throw new HttpResponseException redirect a
  • 计算机毕业设计-社区疫情防控管理系统springboot-小区疫情管理系统java代码

    计算机毕业设计 社区疫情防控管理系统springboot 小区疫情管理系统java代码 注意 该项目只展示部分功能 如需了解 评论区咨询即可 1 开发环境 开发语言 Java 架构 B S 框架 SpringBoot 前端 HTML CSS
  • Docker-容器

    容器 容器的状态用 docker contaier ls 启动容器 启动一个容器的终端 并允许交互 docker run it ubuntu 16 04 bin bash 当利用 docker run 来创建容器时 Docker 在后台运行
  • uvm message printing mechnism

    原文链接 http www sunburst design com papers CummingsSNUG2014AUS UVM Messages pdf 本文主要介绍了如何控制消息打印的等级 以及禁止消息打印等
  • 使用nginx+uwsgi+flask实现python服务的负载均衡---(2)uwsgi的安装

    0 安装uwsgi 转自官网 使用pip install uwsgi就可以 当然了也可以下载源码自己make 1 配置uwsgi uwsgi 有多种配置可用 1 ini 2 xml 3 json 4 yaml 这里我使用的ini 当然也可以
  • selenium-server-standalone selenium-server 和 selenium-java 的区别

    selenium1 0还是 seleniumRC的时候 需要启动selenium server standalone包 用来做server selenium RC通过server来给code和broswer建立通道 同时 该jar包包括我们

随机推荐

  • BATJ面试必会之Java IO 篇

    一 概览 二 磁盘操作 三 字节操作 实现文件复制 装饰者模式 四 字符操作 编码与解码 String 的编码方式 Reader 与 Writer 实现逐行输出文本文件的内容 五 对象操作 序列化 Serializable transien
  • DDL和DML常用语句总结

    DDL语句 常用来操作数据库 数据库表 用到的语句 create show alter drop 1 操作数据库 CRUD 1 C Create 创建 创建数据库 create database 数据库名称 创建数据库 判断不存在 再创建
  • 前端页面性能优化 - 字体加载优化

    相比于英文的字库来说 中文字库的体积非常之大 小则1M 动辄几十 M 的体积非常常见 所以在前端页面性能优化中 字体加载的优化就显得尤为重要 阅读了相关的知识和文章 在研究了市面上字体加载方案之后 我总结出了目前可行的方案 1 font s
  • 实对称矩阵的特征值求法_机器学习与线性代数 - 特殊矩阵

    在线性代数中 有一些特殊的矩阵具有易于分析和操作的特性 它们的特征向量可能具有特定的特征值或特殊关系 还有一些方法可以将一个矩阵分解成这些 更简单 的矩阵 操作复杂性的降低提高了可伸缩性 然而 即使这些矩阵都是特殊的 它们也不是罕见的 在机
  • linux创建文件软连接和硬链接详解

    前言 linux系统中链接文件仔细区分可以分为软连接 符号链接 和硬链接 软链接比硬链接应用更广泛 所以也可以认为linux链接文件就是指软链接文件 本文将会在第2部分介绍创建软链接和硬链接的基本命令 在第3部分从linux文件系统的角度出
  • 联合体union在立体几何中的妙用

    联合体union在立体几何中的妙用 为了更好地理解三维游戏编程 我开始研究了立体几何 注意 是立体解析几何 里面涉及到了很多元组 向量和矩阵的知识 虽然还有
  • 编写一个密码类,其中包含一个 str 密码字符串私有成员数据,一个“==”运算 符重载成员函数,用于比较用户输入的密码是否正确。并用数据测试该类。

    define CRT SECURE NO WARNINGS 编写一个密码类 其中包含一个 str 密码字符串私有成员数据 一个 运算 符重载成员函数 用于比较用户输入的密码是否正确 并用数据测试该类 include
  • [Python人工智能] 七.加速神经网络、激励函数和过拟合

    从本系列文章开始 作者正式开始研究Python深度学习 神经网络及人工智能相关知识 前六篇文章讲解了神经网络基础概念 Theano库的安装过程及基础用法 theano实现回归神经网络 theano实现分类神经网络 theano正规化处理 这
  • PTA L1-058 6翻了(详解)

    前言 内容包括 题目 代码实现 大致思路 代码解读 题目 666 是一种网络用语 大概是表示某人很厉害 我们很佩服的意思 最近又衍生出另一个数字 9 意思是 6翻了 实在太厉害的意思 如果你以为这就是厉害的最高境界 那就错啦 目前的最高境界
  • 【运维知识基础篇】Linux定时任务

    今天给大家介绍下linux定时任务 定时任务无非就是在什么时间干什么命令 首先大家要知道文件怎么配置 定时任务一般用root执行 这里介绍crond crontab crontab e 用户定时任务 var spool cron root
  • 2021-06-18 mysql8.0数据库常用操作语句总结

    net start mysql启动MySQL的服务了 net stop mysql停止服务 sc delete MySQL mysqld remove卸载 MySQL 服务 创建新用户 CREATE USER 用户名 host名称 IDEN
  • STL中迭代器的问题

    STL中的容器迭代器 在容器的学习过程中 使用迭代器跳转插入 做了个简单测试 void test 指定位置插入 index使用迭代器 list
  • c++中如何只保留float型的小数点后两位

    float spd 22 518744 char buf 10 sprintf buf 2f spd sscanf buf f spd 记录一下 有时候我们需要float类型只保留两个有效小数 但是在实际应用中会发现一些现象 如 1 5 在
  • 这个 17 岁的黑客天才,破解了第一代 iPhone!

    关注 星标公众号 直达精彩内容 时间来到2007年 第一代的ipone问世惊艳了世人 重新定义了智能手机 但第一代的iPhone也有让人恼火的地方 当时的iPhone和AT T 当时美国最大的移动运营商 签了五年的独家运营协议 使得网络只局
  • redmine Email delivery error: Net::ReadTimeout

    好吧 创建一个redmine 在配置邮件的时候sendmail 可以通过 smtp 25端口可以通过 但使用SSL465 端口说什么也过不去 报错Email delivery error Net ReadTimeout 找样例找不到 有关于
  • 支付宝支付整体流程,包括验签【同步】【异步】

    一 前期准备 1 支付宝开放平台沙箱账号 用于测试 应用公钥需要使用支付宝第三方工具生成 最好在本地备份好 公钥以及配对的密钥 2 javasdk的maven仓库 javasdk 3 内网穿透 使内网能够被 支付宝的服务器访问 支付成功后支
  • java中常见异常

    为了以后方便查阅 特将java中常见异常记录下来 java lang ArithmeticException 算术条件异常 譬如 整数除零等 java lang ArrayIndexOutOfBoundsException 数组索引越界异常
  • Lego-LOAM IMU坐标系变换的详细记录

    Lego LOAM IMU坐标系变换的详细记录 0 基础知识 1 IMU 重力加速度消除 2 相机坐标系 camera 到初始坐标系 camera init 的转换 最近看了Lego LOAM 的IMU部分 没看懂IMU的坐标系变换 看其它
  • Spring源码分析六:bean的创建④ - createBeanInstance

    文章目录 一 前言 二 createBeanInstance 概述 三 createBeanInstance 详解 1 调用 Supplier 接口 obtainFromSupplier 2 使用 factory method 属性 ins
  • php uncaught thrown,PHP异常详解

    PHP的异常是什么 PHP 5 提供了一种新的面向对象的错误处理方法 异常处理用于在指定的错误 异常 情况发生时改变脚本的正常流程 这种情况称为异常 一般使用方法 php this gt getMessage is not a valid