他們告訴我們不要使用異常來控制我們的程序流,因爲拋出異常很慢。我從來沒有聽到任何解釋,爲什麼拋出異常這麼慢。爲什麼拋出異常這麼慢?
所以,問題是:
什麼拋出異常的機理是什麼,是特別活動牽涉其中可能有性能影響?
編輯:
一些澄清:我想聽到什麼額外的工作是由操作系統需要處理拋出異常。在用戶模式和內核模式之間是否存在一些昂貴的切換?或者,也許構建異常對象是昂貴的?或者,也許有什麼東西與切換程序流我缺少什麼?我的問題是編程語言不可知(我希望如此,但證明我錯了)。然而,如果你需要一些錨點,那麼我最感興趣的是與這個主題相關的.NET內部。
EDIT2:
我對異常性能沒有任何問題。我只是想了解這個機制的內部。
編輯3:
使我的問題更清楚。
你指的是哪種語言的執行方式,誰說它的異常處理很慢? –
我指的是拋出一般情況下的異常,我想每個人都會這樣說:我的學術老師,我的同事,我的老闆,每個人都在互聯網:) – 0lukasz0
可能重複[.NET異常有多慢?](http:/ /stackoverflow.com/questions/161942/how-slow-are-net-exceptions) – Paparazzi