Αργκ ξέχασα να το στείλω στη λίστα. <br><br><div class="gmail_quote">Στις 4 Σεπτεμβρίου 2010 4:27 μ.μ., ο χρήστης Mikey Moose <span dir="ltr">&lt;<a href="mailto:unfortunate42@gmail.com">unfortunate42@gmail.com</a>&gt;</span> έγραψε:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div>Θα το πάω λίγο ψηλαφητά και θα προτείνω την ιδέα ότι οι Exceptions δεν προτείνονται ως δομή ελέγχου μόνο λογω του ότι είναι βαριές. Θαρρώ πως το όλο θέμα ξεκίνησε από τη Java που είναι όντως βαριές. </div>
<div><br></div>
<div>Ξέρουμε αν είναι βαριές στην Python;</div><div><br></div><div>Αλέξανδρος</div><br><div class="gmail_quote">Στις 4 Σεπτεμβρίου 2010 2:48 μ.μ., ο χρήστης Apostolos Mpessas <span dir="ltr">&lt;<a href="mailto:mpessas@freemail.gr" target="_blank">mpessas@freemail.gr</a>&gt;</span> έγραψε:<div>
<div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Saturday 04 of September 2010 12:30:09 Dimitris Leventeas wrote:<br>
<div>&gt; On Saturday 04 September 2010 12:07:45 you wrote:<br>
&gt; &gt; Εγώ φταίω να πω, ότι οι εξαιρέσεις (as in OverflowError) &quot;πρέπει&quot; να<br>
&gt; &gt; χρησιμοποιούνται για εξαιρέσεις (as in &quot;exceptions to the rule&quot;) και όχι<br>
&gt; &gt; ως δομές ελέγχου; :P<br>
&gt;<br>
</div>&gt; Ως γενικό κανόνα τον βρίσκω σωστό και πολύ καλή επισήμανση εν προκειμένω. Η<br>
&gt; Python όμως κάνει ήδη χρήση εξαιρέσεων με το StopIteration στα for loop<br>
&gt; όπου το χρησιμοποιεί ως δομή ελέγχου. Το κάνει όμως ωραία και χωρίς να<br>
&gt; μπερδεύει.<br>
&gt;<br>
<br>
Σωστό, αλλά μόνο το StopIteration και GeneratorExit δεν έχουν την κατάληξη<br>
Error ή Warning ;) Επιπλέον, αυτά χρησιμοποιούνται στο iteration protocol της<br>
Python για user-level κώδικα και στο PEP 234 εξηγεί, γιατί επιλέχθηκε αυτός ο<br>
τρόπος. (Αν και η Python, όσο το σκέφτομαι, χρησιμοποιεί exceptions σε διάφορα<br>
σημεία C-x &lt;DEL&gt;)<br>
Τεσπα, υπάρχει το βιβλίο Exceptional C++ που αναφέρεται σε exceptions<br>
εκτενέστατα και συνιστώ ανεπιφύλακτα (νομίζω είναι σε 2 μέρη).<br>
<br>
&gt; Νομίζω, γενικότερα, πως οι εξαιρέσεις είναι για ``εξαιρετικά&#39;&#39; σπάνια<br>
&gt; πράγματα. Εφόσον πετιέται αρκετά σπάνια η εξαίρεση *και* δεν κάνει<br>
&gt; δυσανάγνωστο τον κώδικα, μια χαρά είναι η χρήση της. Το catch (word pun<br>
&gt; intended) είναι πως εδώ ο κώδικας γίνεται πιο δυσανάγνωστος (πέρα του<br>
&gt; γεγονότος ότι για τόσο μικρές τιμές είναι απλά λάθος το να πετάς<br>
&gt; εξαιρέσεις).<br>
&gt;<br>
&gt; Άλλωστε είναι πως θέτεις τον κανόνα. Εδώ θα μπορούσε να είναι:<br>
&gt; &quot;&quot;&quot; Αύξανε συνέχεια τον counter κατά 1. &quot;&quot;&quot;<br>
<br>
Πάντα το θέμα είναι τι ορίζεις &quot;εξαιρετική περίπτωση*&quot; (Το EOF είναι<br>
εξαιρετική περίπτωση; ). Αν το παρακάνεις, θα επιστρέψουμε στο goto.<br>
<br>
Αποστόλης<br>
<br>
<br>
* exceptional case<br>
<div><div>_______________________________________________<br>
TasPython mailing list<br>
<a href="http://taspython.eu/" target="_blank">http://taspython.eu/</a><br>
<a href="http://mail.python.org/mailman/listinfo/taspython" target="_blank">http://mail.python.org/mailman/listinfo/taspython</a><br>
</div></div></blockquote></div></div></div><br>
</blockquote></div><br>