PHP try catch 捕获异常,最后调用的方法中错误不打印
- 零、前言
- 一、代码
- 二、打印
- 三、分析
零、前言
记录遇到的疑问,不喜勿喷,谢谢~~~
一、代码
public function test() {try{$errors = [];//$divide = 3 / 0;$this->handleData($errors);if(!empty($errors)) {//var_export($errors);die;}}catch (\Exception $e) {throw $e; //Test.php Line(17) Division by zero}}/*** 处理数据* @param $errors 捕获异常返回错误信息*/public function handleData(&$errors) {try{$this->handleDetailData();}catch (\Exception $e){$errors[] = $e->getMessage();}}/*** 处理详情数据*/public function handleDetailData() {for ($i = 0; $i<9; $i++){$j = 10 / 0; //Division by zero}var_export($dump); //Undefined variable: dump}
二、打印
- 如上代码,打印什么,刚开始以为会打印
Division by zero
,结果并不是。 - 打印结果如下 空空如也,啥也没有
三、分析
- 1、哦,原来是
handleData()
中捕获到了异常Division by zero
,把异常赋值给$errors
了
我们打开注释
//var_export($errors);die;
查看结果
Emmm,舒服了
2、为什么不是打印
Undefined variable: dump
1)、因为代码的执行顺序的从上到下,在handleDetailData()
方法中的for
循环中就异常了,被handleData()
捕获到了,所以下面的var_export($dump);
没执行
2)、如果想要打印Undefined variable: dump
,把Undefined variable: dump
放在for
循环前面即可。
3)、确保var_export($errors);die;注释去除了,才会打印异常信息,否则空空如也
3、想执行
test()
方法中的catch
请打开注释
//$divide = 3 / 0;
打印结果
Test.php Line(17) Division by zero
PHP try catch 捕获异常,最后调用的方法中错误不打印相关推荐
- 当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的.
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递 答:是值传递.Java 编程语言只有值传递参数.当一个对象实例作为一个参数被传 ...
- jqweui组件,confirm嵌套prompt后调用一个方法中的alert无法关闭掉
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 解决方法 前言 jqweui组件,confirm嵌套prompt后调用一个方法中的alert无法关闭掉 提示:以下是本 ...
- java调用其他方法中的变量_Uipath中调用Python的方法
难度等级:初学者. 这篇文章将有助于在UiPath中使用Python活动(Activity),该活动允许从UiPath调用和执行Python脚本.不仅可以执行Python脚本,还可以将参数传递给Pyt ...
- 子类调用父类方法中的this
一直都说this指的是当前对象,super指的是父类对象.但是对这个this理解还是不透彻,今天看effective java 第14条,有个例子一直不理解: package com.zgd;publ ...
- java 数组参数_java中 数组可以作为形式参数传递到调用的方法中吗?要怎么操作?...
展开全部 可以,操作代码如下: public class ArrTest{ public static void doTest(String[] args){ for(int i=0;i System ...
- javascript 调用浏览器的打印方法。并设置打印为横向打印
最近做一个简单的打印功能,要使用JavaScript调用浏览器的打印功能.并设置打印为横向打印: 为了适应A4纸的宽和高这里设置: body{margin:0 auto; width: 1010px; ...
- 跨域调用报表展现页面的flash打印方法
环境说明: 项目的应用和润乾的报表应用分别部署在同一机器不同的web服务器上(IP相同,端口不同,项目的端口8080,报表应用的端口是6868). 在项目中的父页面通过iframe调用报表展现页 ...
- 多维柔性作业调用_摆脱困境:从预定作业中调用安全方法
多维柔性作业调用 假设我们已经实现了一个Spring支持的应用程序,并使用Spring Security的方法安全性表达式对其进行了保护 . 我们的下一个任务是使用安全方法实施计划作业. 更具体地说, ...
- 摆脱困境:从计划作业中调用安全方法
假设我们已经实现了一个Spring支持的应用程序,并使用Spring Security的方法安全性表达式对其进行了保护 . 我们的下一个任务是使用安全方法实施计划作业. 更具体地说,我们必须实现一个计 ...
- obj是什么意思_为什么start方法会调用run方法?(为什么不能直接run来实现创建线程?)...
我们知道再创建线程的时候是使用Thread类中的start方法,那么为什么不直接用Thread类中的run方法呢? 来直接上源码: Thread中的run方法如下. 那么target是什么呢? 我们可 ...
最新文章
- Fertility of Soils:根系C P计量比影响水稻残根周际酶活的时空动态分布特征
- 小白如何学习大数据开发,大数据学习路线是怎样的?
- c# SortedList的妙用 (GroupBy)
- c语言入门教程文库,C语言入门教程(全集)课件
- Operating System-进程/线程内部通信-临界区(Critical Regions)
- Python之网络编程(Socket)
- 04 | 事件调度层:为什么 EventLoop 是 Netty 的精髓?
- 【Java数据结构】平衡二叉树
- @JsonSerialize的使用
- 如何把TS视频文件转换为MP4格式?
- 20开头的HSCode总览
- 使用Ryu实现交换式集线器(Switching hub)
- 002 免格式化U盘部署PE(BIOS)
- python使用文字识别读取图片文字
- 小米商城app端项目
- 浅析 PHP 官方自动化测试方法
- 2022年的ISTQB,你考了没?
- 什么产品适合做海外众筹
- 如何销售网站上的广告位
- 五大移动GPU厂商论剑
热门文章
- html页面搜索文章标题,html-文章页面中的H1-网站标题还是文章标题?
- Ensemble Learning方法总结
- 血腥!实况转播SQL注入全过程,让你知道危害有多大。
- centos mysql 主从安装_基于 CentOS Mysql 安装与主从同步配置详解
- android toast防重_Android-Android中如何防止Toast重复弹出相同的信息?
- java初始堆建议值_Java堆初始大小的建议值
- linux svn服务的维护,Linux服务器搭建svn环境方法详解_网站服务器运行维护,Linux,svn...
- java 关闭对话框_java等待关闭对话框
- linux sh指令自动验证密码,shell脚本自动输入用户名和密码更新服务器上的git项目...
- python 线程类