pythonの例外処理は遅くない？


今までC++やC#を触っていたのですが、たまにpythonも触っていました。

先日pythonのイテレータを見ていたら、イテレータの終了が`raise StopIteration()`で規定されていて、違和感を感じました。

C#等では「例外のcatchはかなり遅い」というのが常識だと思っていました。  
少なくとも、こういう場面で安易に用いるようなものではないと思います。

もしかして、pythonでは例外処理はそこまで遅くないのでしょうか？高頻度で`raise`しても大丈夫でしょうか？




同じ質問が英語の方でありました。  
<https://stackoverflow.com/questions/20115954/would-a-stopiteration-make-
python-slow>

要は `StopIteration` に関してはコストが大きくならないように対処されていて、そのへんはPEP0234で言及されているとのことです。  
<https://www.python.org/dev/peps/pep-0234/>  
Pythonでもほかの例外の捕捉のコストは基本大きいですよ。ドキュメントに書いてあるとおり、

> 実際に例外を捕捉するのは **高価** です。

(※ただし `StopIteration` は除く)  
です。




同じ質問が英語の方でありました。  
<https://stackoverflow.com/questions/20115954/would-a-stopiteration-make-
python-slow>

要は `StopIteration` に関してはコストが大きくならないように対処されていて、そのへんはPEP0234で言及されているとのことです。  
<https://www.python.org/dev/peps/pep-0234/>  
Pythonでもほかの例外の捕捉のコストは基本大きいですよ。ドキュメントに書いてあるとおり、

> 実際に例外を捕捉するのは **高価** です。

(※ただし `StopIteration` は除く)  
です。

