Δημοσιεύτηκε: 07 Απρ 2012, 20:04
από migf1
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

(ιδανικά με αυτή τη σειρά, αλλά όχι απαραίτητα)