我的意思是,一个类有很多方法,比如: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,但在类中呢?!

解决方案 »

  1.   

    把你写的类继承SPL里面的异常类
      

  2.   

    初步看,还是离不开try的
    php并没有自动抛出异常的机制,而是用错误处理
      

  3.   

    我不是 java 程序员,对于异常抛出没有感觉
      

  4.   

    用其它方法使用, 比如register_shutdown_function, set_error_handler, error_get_last
      

  5.   

    有兴趣可以看下这个链接里面的内容http://bbs.csdn.net/topics/370176644