php try 为什么不捕获异常

2025-05-02 08:49:07
推荐回答(3个)
回答1:

你好象没理解catch(Exception $e)的含义
它捕获的是抛出(throw)的异常,而不是通常意义上的程序错误
你说的把@去掉,单纯的$dfg++是没有错误的,你说的错误其实只是一个未定义变量类型的Notice
具体捕获异常的使用方法你可以去翻一下手册,这里我给你一个简单的例子
function sum($a, $b) {
$sum = $a + $b;
if ($sum == 1) {
throw new Exception("当总和为1时抛出一个错误!");
}
return $sum;
}
try {
sum(0, 1);
} catch (Exception $e) {
echo 8;
}

回答2:

试试把error_reporting(0);这句放在php文件的开头
至于@
则是在函数前加 如
while ($row = @mysql_fetch_assoc($qrt))

回答3:

你先搞清楚Error、Warning、Notice和Exception的区别