Δημοσιεύτηκε: 07 Απρ 2012, 20:04
alkismavridis έγραψε:Καλησπέρα!
Έχω την εξής απορία: τι γίνεται με τα σφάλματα (exceptions) στη c;
Πρέπει κάθε φορά να βάζω if blocks για κάθε διαίρεση, άνοιγμα αρχείου κτλ κτλ ή υπάρχει τρόπος να "συνεχίσω" το πρόγραμμα από κάπου όταν συμβεί κάτι περίεργο;;
Ψάχνοντας στο google βρίκα για τις συναρτήσεις setjmp κτλ, αλλά και πάλι τα if blocks δε τα γλιτώνεις..
Ευχαριστώ!
Καλησπέρα,
οι συναρτήσεις που βρήκες (δηλαδή η setjmp() και longjmp() ) είναι ότι πλησιέστερο έχει η C για το exception-handling που γνωρίζεις από μεταγενέστερες γλώσσες.
Το κακό είναι πως δεν παρέχεται έτοιμος, ολοκληρωμένος μηχανισμός διαχείρισης exceptions. Το καλό είναι πως χρησιμοποιώντας αυτές τις 2 συναρτήσεις μπορείς να φτιάξεις ότι μηχανισμό θεωρείς καλύτερο (ή να χρησιμοποιήσεις κάποιον από τους μη-στάνταρ έτοιμους, που έχουν φτιάξει άλλοι).
Για ξεκίνημα έχω να σου προτείνω 3 links:
http://www.di.unipi.it/~nids/docs/longj ... catch.html
http://www.on-time.com/ddj0011.htm
http://lyngvig.org/a-proposal-for-excep ... -in-c.ashx
(ιδανικά με αυτή τη σειρά, αλλά όχι απαραίτητα)