請教PHP 什麼時候try catch

來源:互聯網
上載者:User
大家好 我以前學過php現在剛接觸php有點不太明白 try catch哪裡好呢

如果發生錯誤用 exit直接終止可以嗎

我感覺 try catch 也是類似於exit直接終止的方法,那我直接用exit 然後終止前面輸出一段話 比如說 發生XXX錯誤終止 這樣是不是也能完全代替try catch呢

回複內容:

大家好 我以前學過php現在剛接觸php有點不太明白 try catch哪裡好呢

如果發生錯誤用 exit直接終止可以嗎

我感覺 try catch 也是類似於exit直接終止的方法,那我直接用exit 然後終止前面輸出一段話 比如說 發生XXX錯誤終止 這樣是不是也能完全代替try catch呢

假如要執行的代碼中有很多地方都有可能拋出異常呢?
不catch的話,那就得每個地方不停的判斷結果然後再不停exit的處理,情景你可以想象一下。

發生錯誤與發生異常是兩碼事,但對於答主的問題,
我認為一個項目裡應當只有一種異常捕獲/異常處理/異常記錄的方式,
現在大量的架構和庫都在拋異常,同時也對千奇百怪的異常們例如:

做了準確的歸類,所以就避免了if...else...這樣的野路子,
大家遵守同一個異常處理的方式可以使代碼的可維護性大大提高。

補充:
平時寫代碼時會遇到有些方法或函數會拋出異常,異常是一個Object而不是Error,如果我們對拋出的異常不去處理,則預設的ExceptionHandler或著你使用set_exception_handler()自訂的Handler會被調用,並且中斷你的代碼繼續執行。

那麼問題來了,有時候我們往往不想在意這個異常,繼續執行我們的程式,這時怎麼辦呢?

現在輪到try catch finally這個組合出場了,他的機制如下:

它的寫法可以參考下面的例子:

getMessage());        return 'You can never see me.';    } */ catch (Exception $e) {    array_push($exceptions, $e->getMessage());        return 'You can never see me.';} finally {    return var_dump($exceptions);    }

但是如果catch裡面再次try呢?這個時候try-catch的優勢和好處就體現出來了,而且可以根據拋出異常的不同定製你的錯誤碼,當然這是我現在對catach好處的體會,更多的好處希望等待大牛解答了

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.