PHP 异常类 Exception 高洛峰 细说PHP
/** 1.自定义的异常类,必须是系统类Exception的子类* 如果继承Exception类,重写了构造方法,一定要调用一下父类的构造方法。*/class MyException extends Exception{//必须继承Exception类function __construct($mess){parent::__construct($mess);}function change(){//自定义方法echo '换上备胎';}}
echo "早上起床<br/>";$flag = true;//根据异常情况设置标志位来抛出异常try{echo "开车上班<br/>";if($flag){//抛出异常throw new MyException("车子爆胎");}echo "路况很好<br/>";
}catch(MyException $e){//$e = new Exception();echo $e->getMessage()."<br/>";echo $e->change()."<br/>";//调用自定义类的方法echo "换上备胎,继续开车上班<br/>";
}echo "到公司<br/>";
============================================================================
/** 捕获多个异常catch*/class WcException extends Exception{function methodWc(){echo "去公厕";}}class NoeatException extends Exception{function methodEat(){echo "买个面包";} }class NutException extends Exception{function methodGowork(){echo "换个轮胎";}}class SnowException extends Exception{function methodHighway(){echo "走小路";}}class Badday{function gowc($flag){if(!$flag){throw new WcException("马桶坏了");}echo "物质准备到位<br/>";}function eat($time){if(!$time){throw new NoeatException("无早餐可吃");}echo "吃很饱<br/>";}function gowork($nut){if(!$nut){throw new NutException("扎到钉子了");}echo "去上班啦!<br/>";}function highway($snow){if(!$snow){throw new SnowException("下雪封路了");}echo "走高速<br/>";}}
echo "早上起床<br/>";$flag = false;//根据异常情况设置标志位来抛出异常try{$badday = new Badday();//1.上厕所(马桶不好用了) 去公厕$badday->gowc(true);//2.吃早餐(没有早点了) 买个面包$badday->eat(false);//3.开车上班(爆胎) 换胎$badday->gowork(true);//4.上高速(下雪了) 走国道$badday->highway(true);
}catch(WcException $e){echo $e->methodWc();
}catch (NoeatException $e){echo $e->methodEat();
}catch(NutException $e){echo $e->methodGowork();
}catch(SnowException $e){echo $e->methodHighway();
}catch (Exception $e){echo $e->getMessage();
}echo "到公司<br/>";
转载于:https://blog.51cto.com/11410485/1842207
相关文章:
【ACM】杭电OJ 2023
注意最后又两个\n #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int maxn 1000; int a[maxn][maxn]; double grade[maxn]; double average[maxn]; int main () {int m,n,i,j,flag,count;//n个学生,m门…

Hadoop学习笔记—7.计数器与自定义计数器
一、Hadoop中的计数器 计数器:计数器是用来记录job的执行进度和状态的。它的作用可以理解为日志。我们通常可以在程序的某个位置插入计数器,用来记录数据或者进度的变化情况,它比日志更便利进行分析。 例如,我们有一个文件&#x…
win10安装spacemacs
1、下载emacs最新版 26.1 2、解压emacs到你的安装目录,我的系统是D:/Program File/。执行/bin目录下的addpm.exe 这一步会在开始菜单创建快捷方式 3、在系统环境变量中添加新项HOME(具体环境变量设置方式请自行google),该变量的路径决定了emacs启动时.emacs.d目录…

【ACM】杭电OJ 2024
注意: 1、getchar() 2、scanf和gets的区别 3、判断条件 C语言的合法标识符 1、由字母,数字,下划线组成 2、且首字符不能是数字 #include <iostream> #include <cstdio> #include <cstring> using namespace std; in…

王振的开发板_Android
任务一: 任务内容:主界面框架的搭建 发布时间:2016-8-26 已完成 任务二: 任务内容:我的 主界面的开发 发布时间:2016-8-27 已完成 任务三: 任务内容:发布界面 动画开发 发布时间&a…

JAX-RS(基于Jersey) + Spring 4.x + MyBatis构建REST服务架构
0. 大背景 众所周知,REST架构已经成为现代服务端的趋势。 很多公司,已经采用REST作为App, H5以及其它客户端的服务端架构。 1. 什么是JAX-RS? JAX-RS是JAVA EE6 引入的一个新技术。 JAX-RS即Java API for RESTful Web Services,是一个Java 编…

c语言宏嵌套和展开规则
基本原则: 在展开当前宏函数时,如果形参有#或##则不进行宏参数的展开,否则先展开宏参数,再展开当前宏。 #是在定义两边加上双引号 #define _TOSTR(s) #sprintf(_TOSTR(test ABC)) printf(_TOSTR("test ABC")); print…

【ACM】杭电OJ 2027
注意输出格式!!!! #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int maxn 10000; char s1[maxn]; int main () {int n,j,i,a,e,o,u;scanf("%d",&n)…

搜索引擎广告过滤Chrome插件
搜索广告屏蔽Chrome插件:自动过滤:百度,360,搜狗,google,bing的搜索广告,让魏则西的悲剧不再重演。珍爱生命,远离搜索广告!下载:FuckAd.zip 安装:方法自行百度…

Scala程序设计:Java虚拟机多核编程实战(国内第一本Scala图书)
Scala程序设计:Java虚拟机多核编程实战(国内第一本Scala图书) 基本信息 作者: (美)Venkat Subramaniam 译者: 郑晔 李剑 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787115232953 上架时间&am…

emacs快捷键
https://blog.wozouwokan.com/%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91/2015/07/14/spacemacs/ 超全开发快捷键:https://edward852.github.io/post/%E9%80%9A%E7%94%A8%E4%BB%A3%E7%A0%81%E7%BC%96%E8%BE%91%E5%99%A8spacemacs/ spc f T快速定位当前文件在neotree中的…

python 小程序,输错三次密码锁定账户
1 [rootsun ~]# cat 7.py 2 #!/usr/bin/python3 # -*- codingUTF-8 -*-4 5 usera_name usera6 usera_passwd aresu7 usera_status on8 userb_name userb9 userb_passwd bresu 10 userb_status on 11 ng 0 12 13 14 name raw_input(请输入用户名:) 15 …
【数据结构】图的深度优先遍历 广度优先遍历
文件操作比直接输入方便许多 #include <stdio.h> #include <stdlib.h> #include <string.h> #define M 20/*邻接表的储存结构*/ typedef struct node /*表结点 或者 边表结点*/ {int adjvex;struct node *next; }edgenode;typedef struct vnode /*头结点*/ …

C++ Primer(第4版)(评注版)
《C Primer(第4版)(评注版)》基本信息原书名: C Primer (4th Edition) 原出版社: Addison-Wesley Professional; 4 edition 作者: (美)Stanley B.Lippman Josee Lajoie Barbara E.Moo 译者: 陈硕 丛书名: 传世经典书丛…

win10安装emacs+spacemacs,建议用官方安装方式
1、下载emacs最新版 26.1 官网下载地址:https://www.gnu.org/software/emacs/download.html#nonfree 2、解压emacs到你的安装目录,我的系统是D:/Program File/。执行/bin目录下的addpm.exe 这一步会在开始菜单创建快捷方式 3、在系统环境变量中添加新项HOME(具体环…
【ACM】杭电OJ 2028
int 会 WA ,注意使用 long long 先除后乘,避免超出范围,但好像本题先乘后除也AC #include <iostream> #include <cstdio> #include <cstring>long long lcm(long long a,long long b) {long long c,t,ma,nb;if(a<b) {…

IIS8 添加配置 WCF服务
今天在Windows8.1 操作系统部署了半天的WCF 一直老是在报错、在这里做个记录 防止下次忘记 在网上查了半天。终于知道原来IIS8不支持WCF服务SVC的请求。所以必须要给IIS8添加WCF服务 的Managed Handler。 添加步骤: 1打开IIS&a…

spacemacs各种问题修复方法
快捷键操作时报 tr不是内部命令 ------说明是缺少tr命令,win10可以安装coreutils for gnuwin32工具集,然后把bin目录加到系统path路径即可 没有ispell, flycheck error ------缺少ispell命令,windows下面用aspell替换,需要安装…
2016/08/27 What I Learned About Going Fast at eBay and Google
每天推荐一个英文视频 http://v.qq.com/page/i/2/d/i0...https://www.youtube.com/watch... 本日看点

【ACM】杭电OJ 2030
注意getchar()的使用,以及汉字占两个字节,因为比较特殊,可以单独记忆 #include <iostream> #include <cstdio> #include <cstring> int main () {char c;int n,i,sum;scanf("%d",&n);getchar();while(n--)…

背景图自适应屏幕居中显示,且不变形
html:<div classitem><div class container /> </div> css:.item {width: 100%;height: 100%;.container {max-width: 100%;height: auto;min-height: 600px; // 这里可监听屏幕变化,改变最小高度position: absolute;left: 50%;top:…

emacs按键绑定详解
key-binding: https://crazylxr.github.io/spacemacas-zh_CH-doc/binding-keys.html 概述:Emacs的键绑定方式看起来花样繁多,其本质上都是同一个机制 (define-key keymap key def) 这里的key是你要绑定的键。keymap是这个key所属的集合,不…

【面试】重建二叉树
一、描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树,假设输入的前序遍历和中序遍历的结果中都不含重复的数字,例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出该二叉树。二叉树结…

【ACM】杭电OJ 2034
开了三个数组 #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <set> #include <algorithm> using namespace std; const int maxn 105; int a[maxn],b[maxn],c[maxn];…

Android 依赖库发布(上传 Library 到 JCenter)gradle最高支持4.4
1.注册 Bintray 注册时要注意哦,千万不要注册成组织的账户,一定要注册为个人。因为组织账户只有一个月的免费使用时间。 个人账户注册地址:bintray.com/signup/oss 有Github、Google、Twitter账号的可以直接登录哦 2.创建Maven仓库࿰…

emacs参考资料整理
spacemacs dired模式用法: https://blog.slegetank.com/blog/20170106-dired.htmlEmacs文件管理神器--dired常用操作说明 - 暗无天日快捷键用法:https://yuyang0.github.io/notes/spacemacs.htmlemacs官方参考手册:https://www.gnu.org/software/emacs/m…

Codeigniter文件上传类型不匹配错误
Codeigniter的文件上传类方便了我们使用PHP来处理文件上传的操作,使用起来非常简单,如下:$config[upload_path] ./uploads/;$config[allowed_types] gif|jpg|png;$config[max_size] 100;$config[max_width] 1024;$config[max_height] …

【ACM】杭电OJ 2036(待更)
AC代码 #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <set> #include <algorithm> using namespace std; const int maxn 105; double a[maxn][3]; int main () {in…

Spring_boot_pom.xml和启动方式
spring-boot-starter-parent 整合第三方常用框架信息(各种依赖信息) spring-boot-starter-web 是Springboot整合SpringMvc Web 实现原理:Maven依赖继承关系 相当于把第三方常用maven依赖信息,在parent项目中已经封装好了 提供依赖信息关联整合的jar包 springboot中快速原理…

ubuntu18安装virtualbox
1. 报错No rule to make target arch/x86/tools/relocs_32.c 解决办法:sudo apt install linux-source sudo apt-get install linux-headers-5.4.0-42:i386 安装步骤: https://blog.csdn.net/AAMahone/article/details/86428040 安装完成后&…