PHP的异常处理一直都稀里糊涂的,今天终于抽空给搞清楚了。异常处理对程序中错误提示提供了一个很好的思路,解决了不少问题。哈哈哈哈,Happy
<?php
/**
* PHP的异常机制
* 人世间,洗衣做饭,世事无常,常常叹息,洗洗健康
* 有道是,出了异常要处理,不管不问心发慌
*
* 简单的说, 失恋 落榜 车祸 马航
* 人世间所有你能预料或是不可预料的东西都可以称为异常,
* 遇到异常就要积极的去面对处理,而不是加个@符逃避
*
* 以下为一个简单的PHP异常使用Demo
*/
//澡堂异常类
class WashException extends Exception{
//制作马赛克的方法
function makeMosaic(){
echo "表担心,哥给你脸上打马赛克!";
}
//踢回去的方法
function kickBack(){
echo "Enjoy Yourself~";
}
}
//杜蕾斯异常类
class DurexException extends Exception{
//用毓婷的方法
function killBaby(){
echo "不成功,便成人!!";
}
}
//澡堂塌了的方法
function destroy($yes=false){
if($yes) throw new WashException("澡堂塌了!!尼玛!!坑爹呢!!!", 1);
}
//扔肥皂的方法
function soapDown($yes=false){
if($yes) throw new WashException("我勒个去,竟然有人给我扔肥皂!", 2);
}
//跟别人媳妇霍霍的方法
function huohuo($durex="good"){
if($durex=="bad") throw new DurexException("擦,这套套让熊孩子给扎个洞!!", 120);
}
try{
//PHP抓到异常后会终止下面的代码执行,转而跳到异常处理当中
// destroy(1);
// soapDown(1);
huohuo("bad");
}catch(WashException $e){//抓澡堂的异常
echo $e->getMessage()."<br>";
$code = $e->getCode();
if($code == 1) $e->makeMosaic();
if($code == 2) $e->kickBack();
}catch(DurexException $e){//抓杜蕾斯的异常
echo $e->getMessage()."<br>";
if($e->getCode() == 120) $e->killBaby();
}catch(Exception $e){//抓漏网之鱼
echo $e->getMessage();
}