<?php
/**
* 自定义一个异常处理类
*/
class MyException extends Exception
{
// 重定义构造器使 message 变为必须被指定的属性
public function __construct ( $message , $code = 0 ) {
// 自定义的代码
// 确保所有变量都被正确赋值
parent :: __construct ( $message , $code );
}
// 自定义字符串输出的样式
public function __toString () {
return __CLASS__ . ": [{$this->code}]: {$this->message}\n" ;
}
public function customFunction () {
echo "A Custom function for this type of exception \n" ;
}
}
/**
* 创建一个用于测试异常处理机制的类
*/
class TestException
{
public $var ;
const THROW_NONE = 0 ;
const THROW_CUSTOM = 1 ;
const THROW_DEFAULT = 2 ;
function __construct ( $avalue = self :: THROW_NONE ) {
switch ( $avalue ) {
case self :: THROW_CUSTOM :
// 抛出自定义异常
throw new MyException ( '1 is an invalid parameter' , 5 );
break;
case self :: THROW_DEFAULT :
// 抛出默认的异常
throw new Exception ( '2 isnt allowed as a parameter' , 6 );
break;
default:
// 没有异常的情况下,创建一个对象
$this -> var = $avalue ;
break;
}
}
}
// 例子 1
try {
$o = new TestException ( TestException :: THROW_CUSTOM );
} catch ( MyException $e ) { // 捕获异常
echo "Caught my exception \n" , $e ;
$e -> customFunction ();
} catch ( Exception $e ) { // 被忽略
echo "Caught Default Exception \n" , $e ;
}
// 执行后续代码
var_dump ( $o );
echo "\n\n" ;
// 例子 2
try {
$o = new TestException ( TestException :: THROW_DEFAULT );
} catch ( MyException $e ) { // 不能匹配异常的种类,被忽略
echo "Caught my exception \n" , $e ;
$e -> customFunction ();
} catch ( Exception $e ) { // 捕获异常
echo "Caught Default Exception \n" , $e ;
}
// 执行后续代码
var_dump ( $o );
echo "\n\n" ;
// 例子 3
try {
$o = new TestException ( TestException :: THROW_CUSTOM );
} catch ( Exception $e ) { // 捕获异常
echo "Default Exception caught\n" , $e ;
}
// 执行后续代码
var_dump ( $o );
echo "\n\n" ;
// 例子 4
try {
$o = new TestException ();
} catch ( Exception $e ) { // 没有异常,被忽略
echo "Default Exception caught\n" , $e ;
}
// 执行后续代码
var_dump ( $o );
echo "\n\n" ;
?>
分享到:
相关推荐
微信自定义菜单php demo,自定义代码
详细分析php获取不到自定义header参数的原因,明确设置自定义header参数注意事项以及php获取自定义参数方法
计算机后端-PHP最佳开发入门实战课程09-05 自定义异常.mp4
通过自定义的加密函数,可再解密,加密过程需要一个关健字,这个关键字用来解密,就算是别人看到了你的解密函数但是不知道关键字是多少照样无法解密。
php代码,实现微信自定义菜单的创建
php微信生成自定义菜单
自定义php json encode
支持自定义设置php版本的PHP绿色集成环境
php5 中文 手册 php5中文手册 php最好最权威的电子书
安卓APP自定义异常处理器,当APP触发未捕获的异常时,使用该处理器自定义有好的奔溃提示页面代替系统默认的那个讨厌的对话框 软件开发设计:PHP、QT、应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java...
php环境搭建(支持自定义php版本纯绿色php集成环境,支持自主更新php版本)
自定义菜单的删除接口会一次性删除所有自定义菜单,请求地址是: https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=ACCESS_TOKEN。成功后返回数据是: {"errcode":0,"errmsg":"ok"} 之所以没有提供删除...
thinkPHP与PHP 自定义加密与解密代码,希望能帮到你喔!
自定义php分页类,支持纯php,tp3.2,tp5.0,使用时只需引入分页类,按照demo编写即可
1、PHP函数介绍 2、PHP如何自定义函数 3、使用自定义函数实例操作
php自定义session,cookie,不依赖客户端及服务器设置,非常实用,自编,0分贡献,有什么意见建议可留言回复我,本人菜鸟,勿喷
可以自动生成PHP表单,文本域,单选多选,列表等都可以自成生成。
微信开发者自定义菜单源码。php源代码 已测无误,非常好用
用了下,发现比PHP官方中文手册函数手册.chm来,更细致,更适合开发使用,好东西不敢独享,现摘用部分原创者的话: Extended CHM 版则额外提供了以下几种主要特性: 1、附带非常实用用户注释,其价值不亚于用户手册...
NULL 博文链接:https://fonny.iteye.com/blog/1328223