php catch e是什么,php try catch 中的catch(Exception $e) 中的Exception 有什么作用?
如题. 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 有什么作用?相关推荐
- PHP中try{}catch{}是异常处理.
PHP中try{}catch{}是异常处理. 参考文章: (1)PHP中try{}catch{}是异常处理. (2)https://www.cnblogs.com/wangfeng3306/p/104 ...
- C#中try catch中throw ex和throw方式抛出异常有何不同
C#中try catch中throw ex和throw方式抛出异常有何不同 参考文章: (1)C#中try catch中throw ex和throw方式抛出异常有何不同 (2)https://www. ...
- php try 中 抛出异常处理,php中try catch捕获异常实例详解
php中try catch可以帮助我们捕获程序代码的异常了,这样我们可以很好的处理一些不必要的错误了,感兴趣的朋友可以一起来看看. PHP中try{}catch{}语句概述 PHP5添加了类似于其它语 ...
- php中try catch捕获异常实例详解
本文实例讲述了php中try catch捕获异常.分享给大家供大家参考.具体方法分析如下: php中try catch可以帮助我们捕获程序代码的异常了,这样我们可以很好的处理一些不必要的错误了,感兴趣 ...
- 浅谈Java中try catch 的用法
我们编译运行程序出错的时候,编译器就会抛出异常.抛出异常要比终止程序灵活许多,这是因为 的Java提供了一个"捕获"异常的的处理器(处理器)对异常情况进行处理. 如果没有提供处理器 ...
- js 中try catch用法
try{//正常执行的代码 //如果出错,抛出错误 }catch(err){//处理错误 } 运行流程: try{-}包含块中的代码有错误,则运行catch(err){-}内的代码, 否则不运行cat ...
- java中try...catch处理异常
public class TryCatchStu { /*try catch:自己处理异常 *try{ * 可能出现异常的代码 *}catch(异常类名A e){ * 如果出现了异常 ...
- RuntimeException的特殊情况[C++] 有人会在程序中try catch吗?什么样的问题需要用try catch语句执行
http://www.bitscn.com/pdb/java/200605/23824.html 本章的第一个例子是: if(t == null) throw new NullPointerExcep ...
- java try的用法_Java中try()catch{}的使用方法
今天撸代码的时候发现了一段这样的代码 try( Connection conn=DriverManager.getConnection(url,user,pass); Statement stmt=c ...
- Java中try catch语句的用法
在 Java 中通常采用 try catch 语句来捕获异常并处理.语法格式如下: try { 逻辑代码块1; } catch(ExceptionType e) { 处理代码块1; ...
最新文章
- vue点击增加class_Vuevbind动态绑定class
- u-boot分析之两阶段代码分析(三)
- 增强学习(一) ----- 基本概念
- windows和linux下的文件路径表示
- 动态规划(Dynamic Programming)例题步骤详解
- iOS组件化-带你一步步实现项目的组件化
- Myeclipes连接Mysql数据库配置
- 结构体07:结构体案例1
- python零基础能学吗-终于知道深圳Python零基础能学吗
- 如何获得getElementById的length这个数值?
- vue路由钩子函数(进入和离开钩子函数)
- 付费率第一 亏损显著收窄 网易云音乐将实现盈利?
- 再问运费查询的具体实现问题
- 物联网、大数据、云计算、人工智能之间的关系
- 程序员常见10大口头禅
- AndroidStudio开发的领养宠物app
- STL vector :大理石在哪儿?
- 查找SAPParameterID_SAP刘梦_新浪博客
- 智能网联汽车成兵家必争之地,恒驰智能网联汽车亮点何在?
- swiper切换 同时更换 背景色
热门文章
- Demon_接金币(三个掉落物品预设体,一接物体的工具)
- row_number() over(partition by的用法
- GetSafeHdc( )
- AB1601的AD转换注意事项
- java中的类加载器有,Java自定义的类加载器,java自定义加载,在java中类加载器有以...
- python离线包安装_python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境...
- javaweb_JSP 的 include 指令的程序
- Cryptohack-RSA writeups
- node + express + mongodb 手动配置
- Diffie-Hellman密钥交换协议