如题. Exception 是起作用域的作用吗?还是语言结构?

首先很明确的是 try … catch … 是一个语言结构。

那既然如此就不能用函数参数类型限定的方式去理解 catch 后面的括号里的 Exception 了。

如果这里没有 Exception,比如这样写:

<?php

try {

} catch ($e) {

}

你会得到一个错误:

Parse error: parse error, expecting

"identifier (T_STRING)"' or

“namespace (T_NAMESPACE)”‘ or `”\\ (T_NS_SEPARATOR)”‘ in …

显而易见,这里的 Exception 是一种『预期』,用于判断捕获到的异常类型的。

如果用类的情景来翻译一下,大概就类似于:

<?php

$e = new Exception;

if ($e instanceof Exception) {

# do something ...

}

如果你是多个 catch,比如:

<?php

try {

throw new CustomException("Error Processing Request", 1);

} catch (CustomException $e) {

echo 1;

} catch (Exception $e) {

echo 2;

}

class CustomException extends Exception

{

}

虽然我们抛出的异常也属于 Exception,但是 catch 捕捉到第一个就停止了,所以这里只会输出 1,如果互换

catch (CustomException $e)

catch (Exception $e)

也一样。

这也和以下情况相同:

<?php

$e = new CustomException;

if ($e instanceof CustomException) {

echo 1;

} elseif ($e instanceof Exception) {

echo 2;

}

class CustomException extends Exception

{

}

可以看下java,Exception是个类名,catch的$e是类的实例

你也可以自己写个类来继承Exception,然后再catch中抓住

类型吧。你也可以写自己的Exception类

仔细看文档:

Exception是所有异常的基类。

PHP: Exception – Manual

php catch e是什么,php try catch 中的catch(Exception $e) 中的Exception 有什么作用?相关推荐

  1. PHP中try{}catch{}是异常处理.

    PHP中try{}catch{}是异常处理. 参考文章: (1)PHP中try{}catch{}是异常处理. (2)https://www.cnblogs.com/wangfeng3306/p/104 ...

  2. C#中try catch中throw ex和throw方式抛出异常有何不同

    C#中try catch中throw ex和throw方式抛出异常有何不同 参考文章: (1)C#中try catch中throw ex和throw方式抛出异常有何不同 (2)https://www. ...

  3. php try 中 抛出异常处理,php中try catch捕获异常实例详解

    php中try catch可以帮助我们捕获程序代码的异常了,这样我们可以很好的处理一些不必要的错误了,感兴趣的朋友可以一起来看看. PHP中try{}catch{}语句概述 PHP5添加了类似于其它语 ...

  4. php中try catch捕获异常实例详解

    本文实例讲述了php中try catch捕获异常.分享给大家供大家参考.具体方法分析如下: php中try catch可以帮助我们捕获程序代码的异常了,这样我们可以很好的处理一些不必要的错误了,感兴趣 ...

  5. 浅谈Java中try catch 的用法

    我们编译运行程序出错的时候,编译器就会抛出异常.抛出异常要比终止程序灵活许多,这是因为 的Java提供了一个"捕获"异常的的处理器(处理器)对异常情况进行处理. 如果没有提供处理器 ...

  6. js 中try catch用法

    try{//正常执行的代码 //如果出错,抛出错误 }catch(err){//处理错误 } 运行流程: try{-}包含块中的代码有错误,则运行catch(err){-}内的代码, 否则不运行cat ...

  7. java中try...catch处理异常

    public class TryCatchStu {  /*try catch:自己处理异常   *try{   * 可能出现异常的代码   *}catch(异常类名A e){   * 如果出现了异常 ...

  8. RuntimeException的特殊情况[C++] 有人会在程序中try catch吗?什么样的问题需要用try catch语句执行

    http://www.bitscn.com/pdb/java/200605/23824.html 本章的第一个例子是: if(t == null) throw new NullPointerExcep ...

  9. java try的用法_Java中try()catch{}的使用方法

    今天撸代码的时候发现了一段这样的代码 try( Connection conn=DriverManager.getConnection(url,user,pass); Statement stmt=c ...

  10. Java中try catch语句的用法

    在 Java 中通常采用 try catch 语句来捕获异常并处理.语法格式如下:  try {     逻辑代码块1; } catch(ExceptionType e) {     处理代码块1; ...

最新文章

  1. vue点击增加class_Vuevbind动态绑定class
  2. u-boot分析之两阶段代码分析(三)
  3. 增强学习(一) ----- 基本概念
  4. windows和linux下的文件路径表示
  5. 动态规划(Dynamic Programming)例题步骤详解
  6. iOS组件化-带你一步步实现项目的组件化
  7. Myeclipes连接Mysql数据库配置
  8. 结构体07:结构体案例1
  9. python零基础能学吗-终于知道深圳Python零基础能学吗
  10. 如何获得getElementById的length这个数值?
  11. vue路由钩子函数(进入和离开钩子函数)
  12. 付费率第一 亏损显著收窄 网易云音乐将实现盈利?
  13. 再问运费查询的具体实现问题
  14. 物联网、大数据、云计算、人工智能之间的关系
  15. 程序员常见10大口头禅
  16. AndroidStudio开发的领养宠物app
  17. STL vector :大理石在哪儿?
  18. 查找SAPParameterID_SAP刘梦_新浪博客
  19. 智能网联汽车成兵家必争之地,恒驰智能网联汽车亮点何在?
  20. swiper切换 同时更换 背景色

热门文章

  1. Demon_接金币(三个掉落物品预设体,一接物体的工具)
  2. row_number() over(partition by的用法
  3. GetSafeHdc( )
  4. AB1601的AD转换注意事项
  5. java中的类加载器有,Java自定义的类加载器,java自定义加载,在java中类加载器有以...
  6. python离线包安装_python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境...
  7. javaweb_JSP 的 include 指令的程序
  8. Cryptohack-RSA writeups
  9. node + express + mongodb 手动配置
  10. Diffie-Hellman密钥交换协议