<?php
try {
1/0;
} catch (Exception $e) {
print $e->getMessage();
exit();
}
?> 这不是异常了。是错误!那怎么捕捉呢??
parse_url("/www.baidu.com");的时候就会出错!!就认为不是正确的url 主要是这个用处的!!
try {
1/0;
} catch (Exception $e) {
print $e->getMessage();
exit();
}
?> 这不是异常了。是错误!那怎么捕捉呢??
parse_url("/www.baidu.com");的时候就会出错!!就认为不是正确的url 主要是这个用处的!!
只有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.
if(!$arr)
{
return '出错';
}
{
$arr = @parse_url($url) ;
if(!$arr)
{
$error = '就认为不是正确的url '
throw new Exception($error);}
}
catch(Exception $e)
{
echo $e->getMessage();}目前 PHP 的 try catch 没有太多作用
if(!$arr)
{
echo '错误';
}
else
{
echo '没错';
}这个有问题!!!