3

來自C++背景,我學會了限制異常情況下的例外情況,我對Python's cheap exceptions感到非常驚訝。事實上,像迭代這樣的語言功能似乎是建立在拋出異常的基礎上的。當考慮到(python)解釋器必須保證它自己的完整性並因此進行多次檢查時,這是有意義的。解釋型語言通常是「便宜的例外」嗎?

在解釋型語言中期望廉價異常是否正常是否有意義?

編輯:

要明確,這個問題不解決,主要表現,我要補充,我試圖通過學習新的語言,以擴大我的編程技能。我可能從來不會在C++或Pascal的非常規情況下使用異常,但在Python中我顯然應該(並且這可能不是唯一的語言)。而且因爲它使我的代碼結構上的差異,如果我使用或不使用異常,一個簡單的經驗準則/規則將有助於獲得一個新的語言開始..

+0

我不確定應該有什麼「期待」任何事情......談到性能測量時,始終要參考文檔和性能分析。 – 2014-12-07 20:14:18

+0

@MattCoubrough性能不是主要的,而是接近問題的風格。 – Wolf 2014-12-07 20:15:58

+0

我猜我的評論試圖說*「將編程範式從一種語言推演到另一種語言的假設可能是危險的」*即使「解釋」的概念可能因語言而不同(即JIT等) – 2014-12-07 20:30:07

回答

3

看到,在透視:

在除異常外,C++都很便宜;

在Python中,異常與正常的東西差不多。

+1

Sure(+1)。在C++中,異常處理本身也是(或可以)便宜,如果沒有拋出異常,但拋出應該被認爲是可擴展的。 – Wolf 2014-12-07 20:31:01