გამონაკლისები ნამდვილად აადვილებს კოდის დაწერას, სადაც გამონაკლისი არის ჩამოგდებული, არღვევს ინვარიანტებს და ტოვებს ობიექტებს არათანმიმდევრულ მდგომარეობაში. ისინი არსებითად გაიძულებენ დაიმახსოვროთ, რომ თქვენს მიერ გაკეთებული ყველა განცხადების უმეტესობას შეუძლია პოტენციურად გადააგდოს და სწორად გაუმკლავდეს ამას. ამის გაკეთება შეიძლება იყოს სახიფათო და არაინტუიციური.
რატომ არის გამონაკლისები ცუდი C++?
C++ გამონაკლისების ასე ხშირად აკრძალვის მთავარი მიზეზი არის, რომ ძალიან რთულია გამონაკლისის უსაფრთხო C++ კოდის დაწერა. გამონაკლისი უსაფრთხოება არ არის ტერმინი, რომელსაც ხშირად გესმით, მაგრამ ძირითადად ნიშნავს კოდს, რომელიც არ იშლება თავის თავს ძალიან ცუდად, თუ დასტა იხსნება.
გამონაკლისის გარდა ცუდია?
თქვენ უნდა გამოიყენოთ მინიმუმ გამონაკლისის გარდა სისტემის დაჭერის თავიდან ასაცილებლად გამონაკლისები , როგორიცაა SystemExit ან KeyboardInterrupt. აქ არის დოკუმენტების ბმული. ზოგადად, თქვენ უნდა განსაზღვროთ ცალსახად გამონაკლისი , რომლის დაჭერაც გსურთ, რათა თავიდან აიცილოთ არასასურველი გამონაკლისები . თქვენ უნდა იცოდეთ რა გამონაკლისები უგულებელყოფთ.
რატომ არის დაჭერის გამონაკლისი თითქმის ყოველთვის ცუდი იდეა?
catch(გამონაკლისი) ცუდი პრაქტიკაა რადგან ის იჭერს ყველა RuntimeException (მოუნიშნული გამონაკლისი). ეს შეიძლება იყოს java-ს სპეციფიკური: ზოგჯერ დაგჭირდებათ ისეთი მეთოდების გამოძახება, რომლებიც შემოწმებულ გამონაკლისებს აგდებენ. თუ ეს თქვენს EJB / ბიზნეს ლოგიკის ფენაშია, თქვენ გაქვთ 2 არჩევანი - დაიჭირეთ ისინი ან ხელახლა გადააგდეთ.
გამონაკლისები ცუდია შესრულებისთვის?
დასკვნა. არ გამოიყენებაგამონაკლისები მათი შესრულების პოტენციური გავლენის გამო არის ცუდი იდეა. გამონაკლისები ხელს უწყობენ მუშაობის დროის პრობლემებთან გამკლავების ერთგვაროვან გზას და ხელს უწყობენ სუფთა კოდის დაწერას. თუმცა, თქვენ უნდა დააკვირდეთ გამონაკლისების რაოდენობას, რომლებიც ჩაწერილია თქვენს კოდში.