<?php
try
{
echo "比赛开始"."\n";
throw new Exception('哇呀呀~运动员摔倒了'."\n",);
}
catch (Exception $e )
{
echo "获取错误信息:".$e->getMessage()."\n";
echo "获取错误编码:".$e->getCode()."\n";
}
echo "哎呀比赛结束了"."\n";
?>

输出结果:

比赛开始
获取错误信息:哇呀呀~运动员摔倒了

  • 自定义异常类
<?php
//自定义异常
class MyException extends Exception #自定义异常类继承自异常基类
{
public function demo()
{
echo "快把运动员扶起来";
}
}
try{
echo "比赛开始"."\n";
throw new MyException("哎呀运动员摔倒了",);
}
catch(MyException $e)
{
echo $e->getCode()."\n";
echo $e->getMessage()."\n";
echo $e->demo()."\n";
}
echo "比赛结束"."\n";
?>

输出结果:

比赛开始

哎呀运动员摔倒了
快把运动员扶起来
比赛结束

  • 使用自定义myexception的重要原则
<?php

class myexception extends Exception
{
public function demo()
{
echo "快把运动员扶起来"."\n";
}
} try{
echo "比赛开始"."\n";
throw new myexception('运动员被绊了一跤',); #尽管抛出的是myexception,但是却被原生exception捕捉到了,所以自定义exception应该放在第一个!
}
catch (Exception $e)
{
echo $e->getMessage()."\n";
echo $e->getCode()."\n";
echo "上述是原生exception"."\n";
}
catch ( myexception $e)
{
echo $e->getMessage()."\n";
echo $e->getCode()."\n";
echo $e->demo()."\n";
echo "上述是自定义myexception"."\n";
}
?>

输出结果:

比赛开始
运动员被绊了一跤

上述是原生exception

正确姿势:

<?php

class myexception extends Exception
{
public function demo()
{
echo "快把运动员扶起来"."\n";
}
} try{
echo "比赛开始"."\n";
throw new myexception('运动员被绊了一跤',);
} catch ( myexception $e)
{
echo $e->getMessage()."\n";
echo $e->getCode()."\n";
echo $e->demo()."\n";
echo "上述是自定义myexception"."\n";
}
catch (Exception $e)
{
echo $e->getMessage()."\n";
echo $e->getCode()."\n";
echo "上述是原生exception"."\n";
} ?>

输出结果:

比赛开始
运动员被绊了一跤

快把运动员扶起来

上述是自定义myexception

  • 特别函数set_exception_handler
<?php
function heichouxianwaA($mywords)
{
echo $mywords->getMessage();
}
set_exception_handler('heichouxianwaA');
throw new Exception("我满心欢喜打开我的未来");
?>

最新文章

  1. URAL 1992 CVS 可持久化链栈
  2. 实例之HTML标签属性
  3. JSP 核心标签库
  4. 软件工程 speedsnail 第二次冲刺1次
  5. hdu-5686 Problem B(斐波那契数列)
  6. PySide 简易教程&lt;二&gt;-------工欲善其事,必先利其器
  7. 001.为什么选择用AngularJs开发?
  8. poj 1742 Coins(dp之多重背包+多次优化)
  9. SQL Server 2008 批量插入数据时报错
  10. 门面(Facade)模式
  11. Data Volume 之 bind mount - 每天5分钟玩转 Docker 容器技术(39)
  12. set 利用lower_bound实现key索引
  13. Linux 三剑客 -- awk sed grep
  14. PYTHON-函数的定义与调用,返回值,和参数-练习
  15. jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第三话):创建一个自由风格的项目(非maven),实现自动打war包
  16. Struts 2 初步入门(五)之接受参数
  17. Final发布
  18. ssh The authenticity of host &#39;10.11.26.2 (10.11.26.2)&#39; can&#39;t be established
  19. 微服务架构之思维三部曲:What、Why、How
  20. 数据库——SQL中EXISTS怎么用1(转)

热门文章

  1. 11.把文本文件的数据导入到Hive表中
  2. Minimum Number of Arrows to Burst Balloons
  3. IDEA自动生成的注释模板
  4. 洛谷 P1266 速度限制 题解
  5. Linux磁盘挂载、分区、扩容操作
  6. 安装jenkins时出现 No such plugin: cloudbees-folder的解决办法
  7. Python(八) —— 异常(概念、捕获、传递、抛出)
  8. [转载]aspnet webapi 跨域请求 405错误
  9. Linq操作之Except,Distinct,Left Join 【转】
  10. 抓包工具之tcpdump