我的意思是,一个类有很多方法,比如:class A{
  public function methodA(){
    throw new Exception('我抛出一个错误!');
  }  public function methodB(){
    throw new Exception('我抛出另一个错误!');
  }  public function __err($msg){
    echo '发生错误:'.$msg;
  }
}
这个__err()方法权当是魔术方法吧,它监督、接收所有抛出的异常!因此也不必每个方法里面单独处理抛出的异常。
smarty好像是先设定一个继承Exception类的自定义异常类,然后所有功能类继承自定义异常类,但我没有仔细观察是如何实现的。
如果不是在类中当然可以通过set_exception_handler捕获所有没有经过try/catch的throw,但在类中呢?!