### 概述
我们需要针对不同的异常进行不同的处理, 我们就可以通过自定义的异常类 . Exception类就是所有异常的基类 . 我们只需要继承这个基类就可以了 .
Exception类只有两个方法可以进行重写:构造方法和toString方法 .
### 自定义一个异常类
~~~
class MyException extends Exception{
public function __construct($message = "", $code = 0, Throwable $previous = null)
{
parent::__construct($message, $code, $previous);
}
public function __toString()
{
$message = "
出现异常了,信息如下
";$message .= "
" . __CLASS__ ."[". $this->code . "]:" . $this->message . "
";return $message;
}
public function test()
{
echo "this is test";
}
public function stop()
{
die("script end...");
}
}
try{
echo "出现异常了";
throw new MyException("测试自定义异常",100);
} catch(MyException $e){
echo $e->getMessage();
echo $e;
}
~~~
结果
~~~
出现异常了测试自定义异常
出现异常了,信息如下
MyException[100]:测试自定义异常
~~~
### 进行多个catch进行捕获
还是使用上面的自定义异常类 .
~~~
try{
echo "出现异常了";
throw new MyException("测试自定义异常",100);
} catch(MyException $e){
echo $e->getMessage();
echo $e;
}catch(Exception $e){
echo $e->getMessage();//在进行多个catch的时候需要把系统的Exception放在最底下
}
~~~