<?php
try {
1/0;
} catch (Exception $e) {
print $e->getMessage();
exit();
}
?> 这不是异常了。是错误!那怎么捕捉呢??
parse_url("/www.baidu.com");的时候就会出错!!就认为不是正确的url 主要是这个用处的!!

解决方案 »

  1.   

    其实你应该了解一下try catch的机制.
    只有throw一个exception,你才会catch到.
    哪为什么有的情况下你没有throw也能捕捉到呢,哪是因为一些函数或者类,在执行期间发生错误了,所以会自动throw.最常见的就是php domdocument,几乎每个函数在手册上都会标明,可能的exception.1/0 产生e_warning.
    parse_url("/www.baidu.com");如果出错了,会返回false并且产生一个e_warning错误.如果你不想让e_warning输出, 对于1/0,你需要在检查除数这个变量,如果是0,直接throw出exception,只有在不为0的情况让才让1/$xx执行.
    对于parse_url,在前面加@会屏蔽e_warning.
      

  2.   

    对于1/0这类情况 要怎么throw一个exception,你才会catch到????感觉异常和错误是2马事吧。。我主要是想做 出现那样的处理。我做些什么。
      

  3.   

    $arr = @parse_url($url) ;
    if(!$arr)
    {
      return '出错';
    }
      

  4.   

    或者 try
    {
     $arr = @parse_url($url) ;
    if(!$arr)
    {
    $error = '就认为不是正确的url '
      throw new Exception($error);}
    }
    catch(Exception $e)
    {
    echo $e->getMessage();}目前 PHP 的 try catch 没有太多作用 
      

  5.   

    $arr=@parse_url('/www.baidu.com');
    if(!$arr)
    {
    echo '错误';
    }
    else
    {
    echo '没错';
    }这个有问题!!!