სხვაობა შემოწმებულ გამონაკლისსა და შესრულების დროის გამონაკლისს შორის

სხვაობა შემოწმებულ გამონაკლისსა და შესრულების დროის გამონაკლისს შორის
სხვაობა შემოწმებულ გამონაკლისსა და შესრულების დროის გამონაკლისს შორის

ვიდეო: სხვაობა შემოწმებულ გამონაკლისსა და შესრულების დროის გამონაკლისს შორის

ვიდეო: სხვაობა შემოწმებულ გამონაკლისსა და შესრულების დროის გამონაკლისს შორის
ვიდეო: FTP (File Transfer Protocol), SFTP, TFTP Explained. 2024, ნოემბერი
Anonim

შემოწმებული გამონაკლისი vs Runtime Exception

გამონაკლისი არის სპეციალური ტიპის მოვლენები, რომლებმაც შეიძლება დაარღვიონ პროგრამის ნორმალური ნაკადი. სახელის გამონაკლისი მოდის "განსაკუთრებული მოვლენისგან". გამონაკლისის სროლა არის გამონაკლისის ობიექტის შექმნის პროცესი და მისი გადაცემა Runtime სისტემაში. როდესაც Runtime სისტემა მიიღებს გამონაკლისის ობიექტს, ის შეეცდება მოძებნოს ვინმე, რომელიც ამუშავებს მას ზარის დასტაში, საპირისპირო თანმიმდევრობით (როგორც მეთოდები გამოიძახეს). Runtime სისტემა წარმატებულია, თუ ის იპოვის მეთოდს გამონაკლისის დამმუშავებლით. გამონაკლისის დამმუშავებელი არის კოდის ბლოკი, რომელსაც შეუძლია ოფიციალურად გაუმკლავდეს აღნიშნულ გამონაკლისს.თუ Runtime სისტემა იპოვის შესაბამის დამმუშავებელს, ის გადასცემს გამონაკლისის ობიექტს დამმუშავებელს. ამას ჰქვია გამონაკლისის დაჭერა. თუმცა, თუ გამონაკლისის დამუშავება შეუძლებელია, პროგრამა შეწყდება. ჯავაში გამონაკლისები მემკვიდრეობით მიიღება Throwable კლასიდან. მონიშნული გამონაკლისები არის გამონაკლისები, რომლებზეც დამუშავება ხორციელდება შემდგენელის მიერ. Runtime გამონაკლისები არის გამონაკლისების ტიპი, რომელიც არ არის შემოწმებული შემდგენელის მიერ.

რა არის შემოწმებული გამონაკლისი?

შემოწმებული გამონაკლისები არის java.lang.exception კლასის ობიექტები ან მისი ქვეკლასები (გარდა java.lang. RuntimeException და მისი ქვეკლასები). მონიშნული გამონაკლისები „შემოწმებულია“კომპილაციის დროს. ეს ნიშნავს, რომ პროგრამისტმა ან უნდა დაიჭიროს ან გადააგდოს ეს გამონაკლისები, წინააღმდეგ შემთხვევაში შემდგენელი ჩივის (გამომწვევი შეცდომის შემდგენელი). ამ მიზეზის გამო, ბევრი შემოწმებული გამონაკლისი ძალიან კარგად არის ცნობილი პროგრამისტებისთვის. მაგალითად, IOException და მისი ქვეკლასები მოწმდება გამონაკლისები, და როცა პროგრამისტი საქმე აქვს ფაილზე წვდომას ან შეცვლას, შემდგენელი ამოწმებს, რომ დარწმუნდეს, რომ ყველა შესაძლო IOException-ზე ზრუნავს პროგრამისტი.

რა არის Runtime გამონაკლისი?

Runtime Exceptions შედგება java.lang. RuntimeException და მისი ყველა ქვეკლასისგან. თეორიულად რომ ვთქვათ, ისინი ემსახურებიან იმავე მიზანს, როგორც შემოწმებული გამონაკლისები, და შეიძლება ჩააგდოს ან დამუშავდეს შემოწმებული გამონაკლისის მსგავსად, მაგრამ მათი დამუშავება არ არის გათვალისწინებული შემდგენელის მიერ. აქედან გამომდინარე, Runtime გამონაკლისები მიეკუთვნება შეუმოწმებელი გამონაკლისების ოჯახს. NullPointerException, NumberFormatEception, ClassCastException და ArrayIndexOutOfBoundsException ჩვეულებრივი გაშვების გამონაკლისია Java-ში.

რა განსხვავებაა შემოწმებულ გამონაკლისსა და გაშვების დროის გამონაკლისს შორის?

მიუხედავად იმისა, რომ ორივე შემოწმებული გამონაკლისი და გაშვების გამონაკლისი არასასურველი მოვლენაა პროგრამის შესრულების დროს, მათ აქვთ განსხვავებები. შემოწმებული გამონაკლისების მართვა ახორციელებს შემდგენელს, მაგრამ გაშვების გამონაკლისი არა. ამიტომ, შემოწმებული გამონაკლისები უნდა იყოს ჩაყრილი ან დამუშავებული, რათა კოდი შედგეს, მაგრამ ასეთი მოთხოვნა არ არსებობს გაშვების დროის გამონაკლისებთან დაკავშირებით.შესაბამისად, გაშვების დროის გამონაკლისები შეცდომებთან ერთად მიეკუთვნება შეუმოწმებელ გამონაკლისების კატეგორიას.

შემოწმებული გამონაკლისების მინუსი არის ის, რომ პროგრამისტმა უნდა გაუმკლავდეს მას მაშინაც კი, თუ მან არ იცის როგორ. ასე რომ, თუ პროგრამისტი უბრალოდ დააყენებს ახალ გამონაკლისს ორიგინალის შეფუთვის გარეშე, დაიკარგება თავდაპირველი გამონაკლისის კუთვნილი სტეკის კვალი. ეს არის სადაც გაშვების გამონაკლისები მოსახერხებელია. იმის გამო, რომ გაშვების დროის ყველა გამონაკლისი შეიძლება დამუშავდეს ერთ ადგილზე, ამიტომ პროგრამისტებს შეუძლიათ დაწერონ ნაკლები რაოდენობის კოდი. მეორეს მხრივ, რადგან შემოწმებული გამონაკლისები უნდა დაიჭიროთ, პროგრამისტისთვის გასაკვირი არ არის. მას ყოველთვის ეცოდინება, რომელი შემოწმებული გამონაკლისი შეიძლება მოხდეს გარკვეული მეთოდით. ამის საპირისპიროდ, პროგრამისტის ცოდნის გარეშე შეიძლება განხორციელდეს სხვადასხვა გამონაკლისები.

გირჩევთ: