• 零、前言
  • 一、代码
  • 二、打印
  • 三、分析

零、前言

记录遇到的疑问,不喜勿喷,谢谢~~~

一、代码

   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 捕获异常,最后调用的方法中错误不打印相关推荐

  1. 当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的.

    当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递 答:是值传递.Java 编程语言只有值传递参数.当一个对象实例作为一个参数被传 ...

  2. jqweui组件,confirm嵌套prompt后调用一个方法中的alert无法关闭掉

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 解决方法 前言 jqweui组件,confirm嵌套prompt后调用一个方法中的alert无法关闭掉 提示:以下是本 ...

  3. java调用其他方法中的变量_Uipath中调用Python的方法

    难度等级:初学者. 这篇文章将有助于在UiPath中使用Python活动(Activity),该活动允许从UiPath调用和执行Python脚本.不仅可以执行Python脚本,还可以将参数传递给Pyt ...

  4. 子类调用父类方法中的this

    一直都说this指的是当前对象,super指的是父类对象.但是对这个this理解还是不透彻,今天看effective java 第14条,有个例子一直不理解: package com.zgd;publ ...

  5. java 数组参数_java中 数组可以作为形式参数传递到调用的方法中吗?要怎么操作?...

    展开全部 可以,操作代码如下: public class ArrTest{ public static void doTest(String[] args){ for(int i=0;i System ...

  6. javascript 调用浏览器的打印方法。并设置打印为横向打印

    最近做一个简单的打印功能,要使用JavaScript调用浏览器的打印功能.并设置打印为横向打印: 为了适应A4纸的宽和高这里设置: body{margin:0 auto; width: 1010px; ...

  7. 跨域调用报表展现页面的flash打印方法

     环境说明: 项目的应用和润乾的报表应用分别部署在同一机器不同的web服务器上(IP相同,端口不同,项目的端口8080,报表应用的端口是6868). 在项目中的父页面通过iframe调用报表展现页 ...

  8. 多维柔性作业调用_摆脱困境:从预定作业中调用安全方法

    多维柔性作业调用 假设我们已经实现了一个Spring支持的应用程序,并使用Spring Security的方法安全性表达式对其进行了保护 . 我们的下一个任务是使用安全方法实施计划作业. 更具体地说, ...

  9. 摆脱困境:从计划作业中调用安全方法

    假设我们已经实现了一个Spring支持的应用程序,并使用Spring Security的方法安全性表达式对其进行了保护 . 我们的下一个任务是使用安全方法实施计划作业. 更具体地说,我们必须实现一个计 ...

  10. obj是什么意思_为什么start方法会调用run方法?(为什么不能直接run来实现创建线程?)...

    我们知道再创建线程的时候是使用Thread类中的start方法,那么为什么不直接用Thread类中的run方法呢? 来直接上源码: Thread中的run方法如下. 那么target是什么呢? 我们可 ...

最新文章

  1. Fertility of Soils:根系C P计量比影响水稻残根周际酶活的时空动态分布特征
  2. 小白如何学习大数据开发,大数据学习路线是怎样的?
  3. c# SortedList的妙用 (GroupBy)
  4. c语言入门教程文库,C语言入门教程(全集)课件
  5. Operating System-进程/线程内部通信-临界区(Critical Regions)
  6. Python之网络编程(Socket)
  7. 04 | 事件调度层:为什么 EventLoop 是 Netty 的精髓?
  8. 【Java数据结构】平衡二叉树
  9. @JsonSerialize的使用
  10. 如何把TS视频文件转换为MP4格式?
  11. 20开头的HSCode总览
  12. 使用Ryu实现交换式集线器(Switching hub)
  13. 002 免格式化U盘部署PE(BIOS)
  14. python使用文字识别读取图片文字
  15. 小米商城app端项目
  16. 浅析 PHP 官方自动化测试方法
  17. 2022年的ISTQB,你考了没?
  18. 什么产品适合做海外众筹
  19. 如何销售网站上的广告位
  20. 五大移动GPU厂商论剑

热门文章

  1. html页面搜索文章标题,html-文章页面中的H1-网站标题还是文章标题?
  2. Ensemble Learning方法总结
  3. 血腥!实况转播SQL注入全过程,让你知道危害有多大。
  4. centos mysql 主从安装_基于 CentOS Mysql 安装与主从同步配置详解
  5. android toast防重_Android-Android中如何防止Toast重复弹出相同的信息?
  6. java初始堆建议值_Java堆初始大小的建议值
  7. linux svn服务的维护,Linux服务器搭建svn环境方法详解_网站服务器运行维护,Linux,svn...
  8. java 关闭对话框_java等待关闭对话框
  9. linux sh指令自动验证密码,shell脚本自动输入用户名和密码更新服务器上的git项目...
  10. python 线程类