php怎麼捕獲異常?

來源:互聯網
上載者:User
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出錯然後進行相應的處理呢

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.