我曾多次被告知,在javascript中使用異常是「壞」的。還沒有真正知道它爲什麼不好,但是我應該使用break,繼續並返回。在javascript中的例外,我應該使用它們以及如何?
這很好,除了我不需要返回/打破/繼續,我需要拋出。我有一種情況,我有迭代器函數互相嵌套,每個函數都會在調用時返回下一個值,所以我使用異常來表示沒有更多要迭代的東西:看起來像是一種合理的方式來執行代碼,使代碼清潔並在實踐中完美運作。真的有什麼理由不在js中使用例外嗎?
第二個問題,當我使用異常時,應該拋出什麼樣的對象?對於錯誤,我顯然會拋出Error的實例,但對於特殊情況(停止迭代等),我需要一個快速的方法來檢查這些特定的異常,我所做的只是定義一個空的命名函數(function StopIteration(){ }),因爲函數是通過引用來比較的,所以我總是可以檢查它是我的特例還是我應該重新拋出。在js中有更好或更具代表性的方法來做到這一點嗎?我應該真的嘗試重構我的代碼避免使用異常嗎?
謝謝
我聽說'try {} catch(e){}閉包會顯着減慢執行速度。需要做測試來驗證。 – timdream 2011-05-26 14:49:28
[Javascript Try-Catch Performance Vs的重複可能性。錯誤檢查代碼](http://stackoverflow.com/questions/3217294/javascript-try-catch-performance-vs-error-checking-code) – Pointy 2011-05-26 14:52:18