Տարբերություն բացառության և սխալի միջև

Տարբերություն բացառության և սխալի միջև
Տարբերություն բացառության և սխալի միջև

Video: Տարբերություն բացառության և սխալի միջև

Video: Տարբերություն բացառության և սխալի միջև
Video: Մհեր Բաղդասարյանը և Ամալյա Հովհաննիսյանը՝ այն մասին, ինչ մնում է TETATET-ի և LIFEROOM-ի կադրից դուրս 2024, Հուլիսի
Anonim

Բացառություն ընդդեմ սխալ

Անսպասելի վարքագիծ կարող է առաջանալ, երբ ծրագիրն աշխատում է: Սա կարող է լինել բացառությունների կամ սխալների պատճառով: Բացառություն են կազմում իրադարձությունները, որոնք կարող են խաթարել ծրագրի բնականոն ընթացքը: Սխալները պայմաններ են, որոնք կարելի է համարել անուղղելի: Բացառությունները հիմնականում կապված են հենց հավելվածի հետ, մինչդեռ սխալները կապված են այն համակարգի հետ, որի վրա աշխատում է ծրագիրը:

Ի՞նչ է բացառությունը.

Բացառությունը իրադարձություն է, որը կարող է խաթարել ծրագրի բնականոն հոսքը: Անվան բացառությունը գալիս է «բացառիկ իրադարձություն» բառից: Բացառություն նետելը բացառության օբյեկտ ստեղծելու և այն գործարկման ժամանակի համակարգին հանձնելու գործընթացն է:Բացառության օբյեկտը ստեղծվում է այն մեթոդով, որով տեղի է ունեցել բացառությունը: Բացառության օբյեկտը պարունակում է օգտակար տեղեկություններ, ինչպիսիք են բացառության տեսակը և նկարագրությունը: Երբ գործարկման ժամանակի համակարգը ստանում է բացառության օբյեկտը, այն կփորձի գտնել ինչ-որ մեկին, ով կառավարում է այն զանգերի կույտի ներսում՝ անցնելով այն հակառակ հերթականությամբ (որպես կոչվել են մեթոդները): Call stack-ը մեթոդների պատվիրված ցանկն է, որոնք կանչվել են մինչ այն մեթոդը, որում տեղի է ունեցել բացառությունը: Գործարկման ժամանակի համակարգը հաջողակ է, եթե գտնում է մեթոդ բացառության կարգավորիչով: Բացառությունների մշակիչը կոդի բլոկ է, որը կարող է պաշտոնապես կարգավորել նշված բացառությունը: Եթե գործարկման ժամանակի համակարգը գտնի համապատասխան մշակող (այսինքն՝ բացառության տեսակը համընկնում է այն տեսակի հետ, որը կարելի է մշակել), այն կփոխանցի բացառության օբյեկտը մշակողին: Սա կոչվում է բռնել բացառությունը: Այնուամենայնիվ, եթե բացառությունը հնարավոր չէ կարգավորել, ծրագիրը կդադարեցվի: Java-ում բացառությունները ժառանգվում են «Throwable class»-ից: NullPointerException և ArrayIndexOutOfBoundsException երկու սովորական բացառություններ են Java-ում:

Ի՞նչ է սխալը:

Սխալը պայման է, որը կարելի է համարել անուղղելի, ինչպես օրինակ՝ ծրագիրը պահանջում է ավելի մեծ հիշողություն, քան հասանելի է: Այս սխալները չեն կարող կարգավորվել գործարկման ժամանակ: Եթե սխալ առաջանա, ծրագիրը կդադարեցվի: Java-ում սխալները ժառանգվում են Throwable դասից: Սխալները սովորաբար նշանակում են լուրջ խնդիրներ, որոնք ծրագրավորողը (կամ հավելվածը) չպետք է փորձի բռնել: Սխալները պարզապես աննորմալ պայմաններ են, որոնք երբեք չեն ակնկալվում, որ տեղի կունենան նորմալ պայմաններում և, հետևաբար, երբեք չեն կանխատեսվում: Օրինակ՝ OutOfMemoryError-ը, StackOverflowError-ը և ThreadDead-ը նման սխալներ են։ Մեթոդները երբեք չպետք է ունենան սխալների կարգավորիչներ:

Ո՞րն է տարբերությունը Բացառության և Սխալի միջև:

Եվ սխալները և բացառությունները ծրագրի կատարման ընթացքում անցանկալի երևույթ են: Այնուամենայնիվ, նրանք ունեն հիմնական տարբերություններ. Բացառություններ կարող են կանխատեսել ծրագրավորողը, մինչդեռ սխալը դժվար է կանխատեսել։Բացառությունները կարող են ստուգվել կամ չստուգվել: Բայց սխալները միշտ չստուգված են: Բացառությունները սովորաբար ցույց են տալիս ծրագրավորողի կողմից առաջացած սխալ: Այնուամենայնիվ, սխալները տեղի են ունենում համակարգի սխալի կամ ռեսուրսի ոչ պատշաճ օգտագործման պատճառով: Հետևաբար, բացառությունները պետք է կարգավորվեն հավելվածի մակարդակով, մինչդեռ սխալները պետք է հոգ տանել համակարգի մակարդակում (միայն հնարավորության դեպքում): Բացառություն վարելուց հետո դուք երաշխավորված եք վերադառնալու ծրագրի նորմալ հոսքին: Բայց նույնիսկ եթե սխալ է հայտնաբերվել, ծրագրավորողը կարող է չգիտի, թե ինչպես վարվել դրա հետ առաջին հերթին: Ի տարբերություն ավանդական սխալների մշակման, բացառությունները թույլ են տալիս առանձնացնել սխալների մշակման կոդը սովորական կոդից:

Խորհուրդ ենք տալիս: