① 异常的概念;异常和错误的区别

PHP 部分借鉴了 C++ 和 JAVA 中的异常处理机制。PHP 中的异常是指 程序运行和预期不太一致,与错误是两个不同的概念

② 异常的语法结构

【例1】

 1 <?php
 2 header('content-type:text/html; charset=utf-8');
 3 /*
 4     try{
 5         要测试的代码段;
 6         throw new Exception('异常信息');
 7     }catch(Exception $e){
 8         echo $e->getMessage();
 9     }
10 */
11 //显示所有错误
12 error_reporting(-1);
13 try{
14     $num1 = 1;
15     $num2 = 2;
16     if( 2 == $num2 ){
17         //抛出异常
18         throw new Exception('0不能当作除数');
19     }else{
20         $num = $num1 / $num2;
21     }
22 }catch(Exception $e){    //捕获异常
23     echo $e->getMessage();
24 }
25 echo 'continue';

捕获异常的前提是要 手动抛出异常(throw new Exception())。

页面输出:

0不能当作除数continue

语法结构:把需要测试的代码放到 try 代码段中,然后通过 catch 来捕获异常(可以在 catch 代码段中进行操作,例如输出异常信息);在 try 代码段的 throw 语句之后的代码不会被执行。当异常抛出后,立即寻找第一个与之匹配的捕获到的异常。

【例2】在使用 PDO 异常处理类时,不需要手动抛出异常即可捕获异常,例如当数据库密码错误时,系统会自动捕获异常(使用了内置异常类):

1 <?php
2 try{
3     $pdo = new Pdo('mysql:host = localhost; dbname = test', 'root', '123');
4     var_dump($pdo);
5 }catch(PDOException $e){
6     echo $e->getMessage();
7 }
8 echo 'continue';

页面输出:

SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: YES)continue

【例3】再例如 SPL(Standard PHP Library(PHP标准库),可以参考《PHP SPL笔记》)的异常处理,同样不需要手动抛出异常(使用了内置异常类):

<?php
try{$splObj = new SPLFileObject('test.txt', 'r');//以“读”的方式打开test.txt(不存在)echo 'read file';
}catch(Exception $e){echo $e->getMessage();
}
echo 'continue';

页面输出:

SplFileObject::__construct(test.txt) [splfileobject.--construct]: failed to open stream: No such file or directorycontinue

③ 自定义异常类

④ 自定义异常处理器

⑤ 如何像处理异常一样处理 PHP 中的错误

⑥ 在发生错误的时候将用户重定向到另一个页面

转载于:https://www.cnblogs.com/dee0912/p/4614915.html

PHP 错误与异常 笔记与总结(12 )异常相关推荐

  1. Python学习笔记:Day 12 编写日志列表页

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此, 写下这些 ...

  2. php错误以及常用笔记

    //语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出./* [命名规则] */ 常量名 类常量建议全大写,单词间用下划线分隔 // MIN_WIDTH 变量名建议 ...

  3. Think in Java第四版 读书笔记6第12章 异常处理

    12.1 概念 异常可以将"在正常时候执行的代码"和"发生错误时的代码"相分离,达到结构清晰的目的. a.受检查异常checkedException 编译器强制 ...

  4. ng机器学习视频笔记(十三) ——异常检测与高斯密度估计

    ng机器学习视频笔记(十三) --异常检测与高斯密度估计 (转载请附上本文链接--linhxx) 一.概述 异常检测(anomaly detection),主要用于检查对于某些场景下,是否存在异常内容 ...

  5. 《Java 核心技术 卷1》 笔记 第11章 异常、日志、断言和调试

    出现不可预计的问题时,需要进行如下处理: 报告错误 保存操作结果 允许用户退出 本章解决的问题: 验证程序正确性 记录程序错误 调试技巧 11.1 处理异常 程序出现错误时应该: 返回安全状态,能让用 ...

  6. [异常笔记] zookeeper集群启动异常: Cannot open channel to 2 at election address ……

    [异常笔记] zookeeper集群启动异常: Cannot open channel to 2 at election address -- 参考文章: (1)[异常笔记] zookeeper集群启 ...

  7. 《Head First Java》读书笔记(3) - 异常和IO

    1.异常处理 我们在调用某个方法时,会被编译器告知需要捕捉异常和处理,意味着你调用的这个方法是有风险的,可能会在运行期间出状况,你必须写出在发生状况时加以处理的代码,未雨绸缪!这就是Java中异常处理 ...

  8. 软件调试学习笔记(四)—— 异常的处理流程

    软件调试学习笔记(四)-- 异常的处理流程 要点回顾 异常的处理流程 实验1:理解调试器与异常的关系 未处理异常:最后一道防线 实验2:理解UnhandledExceptionFilter执行流程 实 ...

  9. oracle如何获取异常,Oracle专题13之异常错误处理

    异常:是程序在正常执行过程中发生的未预料的事件. b.什么是异常处理? 异常处理是为了提高程序的健壮性,使用异常处理部分可以有效地解决程序正常执行过程中可能出现的各种错误,使得程序正常运行. c.异常 ...

  10. java学习笔记2022.1.12

    异常 五个异常关键词 try-catch-finally的写法格式 public void method(){try {//代码段1//产生异常的代码段}catch(异常类型 e){//对异常进行处理 ...

最新文章

  1. Oracle日期转换处理
  2. Vue中foreach数组与js中遍历数组的写法
  3. mac 完全卸载android,关于macos:如何在Mac上完全卸载Android Studio?
  4. app和外部应用的关联及应用举例
  5. ContextMenuStrip 类
  6. 解析浏览器访问服务器 Servlet 应用程序的交互过程(Servlet 容器如何处理请求资源路径)
  7. TiDB备份恢复方式你知多少?
  8. 7-10 求数字个数 (20 分)
  9. 值得收藏的8个Web端组件库
  10. 稀疏内存模型sparsemem memory model | 文章
  11. python爬虫获取标签规则_Python爬虫之数据提取-selenium定位获取标签对象并提取数据...
  12. Android 100个实例
  13. 面试常见的26个问题
  14. 艾克姆nrf52832开发板。
  15. 2023十大科技趋势
  16. div+css使用padding样式和 important标记实现Firefox和IE6处理带float样式的margi
  17. 宇视摄像机接入TSINGSEE青犀视频平台,如何基于SDK获取设备的组织和摄像机?
  18. 目前SEP 离线升级包下载及升级方法
  19. 微信小程序云开发学习
  20. Hyperledger Fabric 入门必读书籍

热门文章

  1. 【CodeForces - 735A 】Ostap and Grasshopper (水题,模拟)
  2. php dns刷新,Windows DNS缓存自动刷新
  3. android显示过程,Android 桌面加载图标过程分析
  4. 小米真蓝牙耳机说明书_小米真无线蓝牙耳机Air2 SE评测:仅需169元,享受随心畅听体验...
  5. Linux实验四:编译和调试工具的使用
  6. leetcode7 整数反转
  7. 数组精选题目三连(6)
  8. 推荐系统(3)-协同过滤2-矩阵分解算法
  9. linux+shell+func,Linux shell编程笔记总结
  10. python从小白到大牛百度云盘_Java从小白到大牛 (关东升著) 中文pdf+mobi版[36MB]