php怎麼捕獲異常?
有沒有類似.net try catch機制?
php不能逐行調試 蛋疼!
回複討論(解決方案)
有的 寫法一樣
try {
} catch (Exception $e) {
print $e->getMessage();
}
有沒有類似.net try catch機制? 這個真心有~
php不能逐行調試 蛋疼! 樓主沒找對ide
其實php的調試可以隨時調,想在哪裡調,最簡單就是在哪裡輸出。當然zend-studio也提供了斷點功能調試,但是遠不如這樣方便。
其實都各有各的好處,哥,還是從了吧。
#1 可愛北極熊 正解
try{$a="sgfdfgdf";$b= (int)$a;echo($b);}catch(exception $e){echo("出錯啦".$e->getMessage());//這裡並木有執行啊}
還需要在try{}語句塊裡拋出異常 throw new Exception('It is an exception!') ,然後由catch(Exception $e) 捕獲。
還需要在try{}語句塊裡拋出異常 throw new Exception('It is an exception!') ,然後由catch(Exception $e) 捕獲。 \
這樣雖然能捕獲到 但錯誤資訊還要我指定啊
我要的就是錯誤資訊啊 我都知道了還捕獲個鬼啊
用echo來放點找異常,php沒法啊
那就去看php的error_log啊...會有各種詳細的報錯資訊....還有啥可catch的...
那就去看php的error_log啊...會有各種詳細的報錯資訊....還有啥可catch的...
php的error_log在那裡看?
錯誤大體有兩種,一種是php可以捕獲到的,例如語法錯誤。還有一種,是邏輯上的錯誤,這種錯誤機器並不能捕獲,所以才會用到try catch人為捕獲。
我想你說的錯誤只是前一種,那麼開啟錯誤提示display_errors = On,就可以看到。
還有set_exception_handle。
你這段代碼沒異常,當然不會執行那句
PHP code
try{
$a="sgfdfgdf";
$b= (int)$a;
echo($b);
}
catch(exception $e){
echo("出錯啦".$e->getMessage());//這裡並木有執行啊
}
你這段代碼沒異常,當然不會執行那句
引用 5 樓 telankes2000 的回複:
PHP code
try{
$a="sgfdfgdf";
$b= (int)$a;
echo($b);
}
catch(exception $e){
echo("出錯啦".$e->getMessage());//這裡並木有執行啊
}
整形轉換錯誤 這還不是錯誤啊
這種錯誤系統應該是自動捕獲的
咳咳,這個不是錯,在php裡, 自動轉換
引用 14 樓 helloyou0 的回複:
你這段代碼沒異常,當然不會執行那句
引用 5 樓 telankes2000 的回複:
PHP code
try{
$a="sgfdfgdf";
$b= (int)$a;
echo($b);
}
catch(exception $e){
echo("出錯啦".$e->getMessage());//這裡並木有執行啊
……
整形轉換錯誤 這還不是錯誤啊 在任何語言中,強制類型轉換都不會是錯誤!
雖然有時你並沒有得到期望的結果
php的錯誤異常和java的類似,不過一般都要自己去拋出:例子:
try{
$m = 0;
if($m < 1) {
throw new Exception('m='.$m.':小於零');
}
echo $m;
} catch(exception $e){
echo "錯誤[line->".($e->getLine())."]: ".($e->getMessage());
}
php弱類型 改變資料類型沒有問題
讓除數為0 ,就會看到拋異常了
我也有相同的疑問。
例如我在php裡面用到了$_GET,但是其實並沒有傳入任何get參數,這個時候就會出錯,我用try catch並不能捕捉到這個錯誤。
請問如何才能知道get出錯然後進行相應的處理呢