/**
* 自定义一个异常处理类
*/
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";
}
}
/**
* 创建一个用于测试异常处理机制的类
*/
class TestException
{
function __construct($str) {
if($str == 1)
throw new MyException('参数不能为1哦',1);
elseif($str == 2)
throw new MyException('参数不能为2哦',2);//抛出2个异常
else
echo $str;
}
}
try {
$o = new TestException(2);
} catch (MyException $e) { // 捕获异常
echo $e;
}
?>