大家好 我以前學過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好處的體會,更多的好處希望等待大牛解答了