Exception本来最多的就是用在自己编写的类层次中啊。当然系统会抛出部分Exception。
但是现在没有php5手册,所以谁也不知道哪些throws出了Exception.
不过这是个好东西。
有机会就应该使用。

解决方案 »

  1.   

    在jsp中是为把错误发到log.txt 编写中检查
     保证程序持续运行.有错也不发到前台.
     保证释放内存.断开数据库连接
    php好象用不到,把抱错关了前太也就看不到了 
     内存..呵呵.我还不知道.php是怎么释放内存的
     数据库连接.前几天我问了.有人说php会自动断开的
      

  2.   

    恩,PHP5的Exception确实像楼主说的那样,除非手工throw,否则错误一样会显示出来,
    而不会像java那样只要try一下就可以了.
    我觉得这方面的应用主要还是Exception类的继承,在自己写的类或函数中throw出该类型的Exception,然后再主程序中调用中就可以不用手工throw,而直接try,catch就可以了.
    但是即使这样一些PHP5本身的错误还是不能catch的
      

  3.   

    http://classes.scriptsphp.net:81/article.PHP-5-et-les-exceptions#runtime
    这篇文章讲了怎么处理系统runtime错误,可惜是法文的,
    不过看看代码就能明白它是怎么处理的了
      

  4.   

    下面的代码我测试了,基本好用<?php
    /*
    ** class RuntimeException 运行时异常处理类
    */
    class RuntimeException extends Exception {
        protected $_context = array();
        function __construct($level, $string, $file, $line, $context){        parent::__construct($string);
            $this->file = $file; 
            $this->line = $line;
            $this->_level = $level;
            $this->_context = $context;
        
        }}/* 函数 runtimeErrorHandler($level, $string, $file, $line, $context)
    **
    */
    function runtimeErrorHandler($level, $string, $file, $line, $context)
    {
    throw new RuntimeException($level, $string, $file, $line, $context);
    }set_error_handler("runtimeErrorHandler");try {
    $i = 2/0;
    }
    catch (RuntimeException $e)
    {
    echo "有错误了!";
    }
    ?>
      

  5.   

    3kshttp://www.php.net/manual/en/ref.errorfunc.php
      

  6.   

    没用过PHP5
    不过要是手动throw,有跟没有有啥区别异常,顾名思义就是不可预知的错误,哪有手动抛出的道理,失败要是做到delphi的异常处理就爽多了
      

  7.   

    手动throw就意味着得到一个exception1,那么我截获它,我处理一下,放点东西,那么我自己弄一个exception2把它抛出,两次异常可以不同
      

  8.   

    还是有问题,set_error_handler只能截获warning,不能接获error,什么方法可以让他接获到error.
      

  9.   

    我是这么看这个东西的,在JAVA中所有的类都是有基类的,而有一个最原始的Object类,那么它的体系结构是完整的,所以异常的处理也是连贯的。但是PHP最初并不是一个面向对象的语言。到现在也不是一个完全面向对象的语言,那么它的体系结构并不完整,或者严谨~~~你可以在自己设计的类中使用异常处理,但是由于PHP所提供的不是类库,而是函数库,那么在异常的处理上可能就不是那么连贯了~~~不知道大家有没有试过在C++中调用C的函数,你会发现同样不能捕获异常,只能通过返回码或错误标识来判断。不知道我有没有理解错这个问题~~
      

  10.   

    set_error_handler不能catch E_ERROR :(
    不知道怎么办