ՀամակարգիչներԾրագրավորում

Java: բացառությունները եւ դրանց բեռնաթափման

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

Երբ դուք կարող եք անհրաժեշտ բացառություն բեռնաթափման

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

Բեռնաթափման Java բացառություններ

Ինչ է հաշվի առնել. The Java լեզուն ունի իր սեփական ներկառուցված բացառություն բեռնաթափման ֆունկցիոնալությունը: Իհարկե, մի մեծ տոկոս սխալի բռնել է մեկ այլ վայրի փուլում, համակարգը ավտոմատ կերպով ծանուցում է, որ այն օգտագործել այլեւս հնարավոր չէ: Բայց սա տեսակ բացառությամբ, որ տեղի է ունենում: Runtime: Ծրագրավորողը պետք է կարողանա ակնկալել, այն եւ նախագծել կոդը, այնպես, որ այն չի առաջացնում որեւէ սխալ, եւ վարվել այն հատուկ ձեւով եւ հանձնել վերահսկողության այլ ճյուղի:

Java, դա պարտադրված է Կազմողի է բռնել մի բացառություն, ուստի բնորոշ խնդիրները հայտնի են եւ ունեն մի ստանդարտ զորավարժությունների հրահանգների.

բնորոշ բացառություններ

Ամենապարզ օրինակը, որը դուք կարող եք ստանալ բացառություն, - այս բաժանումը: Չնայած իր պարզության, առումով, որպես divider, կարող է լինել զրոյական, որը կարող է հանգեցնել սխալի. Դե, եթե դա հնարավոր է կանխատեսել առաջացումը անցյալի եւ կանխել: Բայց այս տարբերակը միշտ չէ, որ առկա է, այնպես որ, բռնում բացառություն պետք է կազմակերպել ուղղակիորեն դեպքում «բաժանիր, ըստ զրոյի»:

The Java մեխանիզմը կանգնեցնել մշակման սխալը կարծես այս խմբին:

  • heap բացառություն օբյեկտ է ստեղծվում, ինչպես նաեւ ցանկացած այլ.
  • բնական ծրագրի ընթացքը ընդհատվեց.
  • բացառումը մեխանիզմ փորձում է գտնել այլընտրանքային ճանապարհ շարունակելու կոդը,
  • Գտնել անվտանգ կատարման ծրագրի մշակողը, աշխատանքի կամ վերականգնվել է, կամ տեղի կունենա իրացմանը բացառությամբ հատուկ ձեւով.

Ամենապարզ օրինակը ստեղծելով սխալ կարող է նման այս խմբին:

եթե (ա == Null)

նետում նոր NullPointerException ();

Այստեղ, փոփոխական է, որը ստուգվում է նախաստորագրումը, այսինքն, չէ արդյոք, վկայակոչելով զրոյական օբյեկտի. Եթե այս իրավիճակը չի առաջացել, եւ պետք է հատուկ մշակման, բացառություն է նետում է նետում նոր NullPointerException ().

Քիչ մանրամասներ մոտ հիմնաբառեր

Երբ գործ բացառություններով հաճախ անհրաժեշտ է օգտագործել բառերի Java անդրադառնալ մի կոնկրետ գործողությունների: Այս լեզուն իրենց հինգ ծրագրավորման:

  • Փորձեք. Այս keyword է արդեն հանդիպել, եւ դա նշանակում է, որ անցումը բաժնում կոդը, որը կարող է նետում է բացառություն: Արգելափակման սահմանափակ braces {}.
  • Բռնել. Այն ընդհատում ցանկալի բացառությամբ տեսակը եւ կարգավորել այն պատշաճ կերպով.
  • Վերջապես. Այս keyword է ընտրովի է եւ օգտագործվում է կատարել որոշակի կտոր կոդը, որը պահանջվում է, այնուամենայնիվ, նույնիսկ եթե ոչ մի բացառություն չի բռնել: Ավելացրել է անմիջապես հետո try բլոկում:
  • Նետում - Ձեզ հնարավորություն է տալիս ստեղծել Java բացառություններ ցանկացած վայրից:
  • Նետում մի հիմնաբառ, որը տեղադրված է մեթոդով ստորագրությամբ: Դա նշանակում է, որ հետեւյալ կոդը կարող է նետում է բացառություն այս տեսակի Java. Այս նշանը ծառայում է որպես ազդանշան մշակողների, որ պետք է հիշել, որ մեթոդը չի կարող աշխատել, քանի որ սպասվում իրեն:

Բռնում մի փորձեք

ՕՆԼԱՅՆ Ջավա բացառություններով, բնականաբար ենթադրում է, որ այն պետք է վարվել հատուկ ձեւով. Առավել հարմար միջոց է դա անել, եթե կոդը բաժինը ցանկապատված դուրս է բլոկում. Որը կարող է պարունակել է բացառություն: Երբ դուք առաջադրվելու այս կոդը, վիրտուալ մեքենան կգտնի անսպասելի իրավիճակ, հասկանում են, որ կա մի կարեւոր թաղամաս եւ փոխանցումների վերահսկում է, որ կայանը հետ վերամշակման.

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

Առավել բնորոշ կոդը պրոցեսինգային միավորի հետեւյալն է.

փորձեք {

// Ահա որոշ կոդը, որը կարող է առաջացնել մի բացառություն

} Catch (Tip_isklyucheniya_1 identifikator_1) {

// Այստեղ կա բացառություն քննության, ըստ նրա տեսակից եւ պայմանների:

} Catch (Tip_isklyucheniya_2 identifikator_2) {

// Այստեղ կա բացառություն քննության, ըստ նրա տեսակից եւ պայմանների:

}

Keyword բռնել հաղորդում է, որ կոդը, եւ սկան համար բացառության, պետք է վերաբերվել այնպես, ինչպես նկարագրված է ստորեւ, պայմանով, որ այն համապատասխանում է իր տեսակի մեջ: Ճանաչողը կարող է օգտագործվել մշակման կոդը բլոկի որպես փաստարկները.

վերջապես

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

Այս սյուժեն ներկայացնում է մի քանի բռնել արգելափակում հորինել մեթոդները բռնել բացառություններ: Օրինակ, կոդը պարունակում է փորձել առաջացնում անսպասելի իրավիճակ, ինչպիսիք են ցուրտ: Այնուհետեւ, Վահանակով կցուցադրվեն Արտահայտությունը «մրսել!» Եւ «Այն է, որ ինչ - որ բան ուրախացնել մասին.». Այն է, որ, ի վերջո, թաղամաս է կատարվում, ամեն դեպքում.

Ի դեպ, մի միջոց է խուսափել triggering վերջապես այնտեղ. Այն կապված է ավարտից վիրտուալ մեքենայի. Գտնել, թե ինչպես պետք է իրականացնել այն, դա հնարավոր է ինտերնետ բաց բացատների:

նետում հիմնաբառ

Նետում առաջացնում է բացառություն: Նրա շարահյուսական հետեւյալն է.

նետում նոր NewException ();

Կա ստեղծել մի նոր բացառություն է տեսակի NewException (). Քանի որ մի տեսակ կարող է օգտագործվել արդեն ներառված է ստանդարտ Java գրադարանի դասերի եւ նախկինում սահմանված կարգով մշակողի իր սեփական արտադրության:

Սա դիզայն նկարագրության մասը ցանկացած եղանակով, որի զանգը պետք է, ապա տեղի են ունենում ընթացքում try բլոկի, որպեսզի կարողանա կանգնեցնել այն.

keyword նետում

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

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

Փորձեք ռեսուրսների

The Java տարբերակի 7 մշակողները ներառում է մի մեծ նորարարությունը, որպես բուժման try բլոկի միջոցների.

Շատ օբյեկտների ստեղծվում են Java, հետո օգտագործումը պետք է փակել մուրաբա ռեսուրսները: Նախկինում այն ունեցել է սա հաշվի եւ դադարեցնել այդ ատյաններում ձեռքով: Այժմ, սակայն, նրանք հայտնվել AutoClosable ինտերֆեյսի. Այն օգնում է ավտոմատ կերպով փակել արդեն օգտագործվել օբյեկտների տեղադրված է try բլոկի. Միջոցով այդ մոտեցման, այն դարձել է ավելի հարմար է գրել կոդ իր ընթեռնելիությունը է զգալիորեն աճել է:

Սեփական դասեր Java բացառություններ

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

Այդ պարզագույն միջոց է ստեղծել, որպեսզի ժառանգեն սկսած առավել նպատակահարմար է օբյեկտի համատեքստում:

Եղավ, ժառանգել բացառության, դաս, որն օգտագործվում է սահմանել ձեր սեփական բացառություններ: Ի MyException ունի երկու Կոնստրուկտորներ - ը լռելյայն, երկրորդը - ի հետ փաստարկ msg տիպի String:

Այնուհետեւ, հասարակական դասարանի FullConstructors իրականացվող մեթոդը զ, որը պարունակում է ստորագրությունը նետում MyException: Սա հիմնաբառ նշանակում է, որ զ կարող է նետում նման Java MyException բացառության: Բացի այդ, մեթոդը մարմնի արտադրվել տեքստային տեղեկատվական արտադրանքի է մխիթարել բուն եւ փաստացի սերնդի MyException կողմից նետում:

Երկրորդ մեթոդը փոքր - ինչ տարբերվում է առաջինից, որ երբ դուք ստեղծեք մի բացառություն, այն անցել է լարային պարամետր, որը կարտացոլվի մխիթարել բռնում. Ի հիմնական պարզ է, որ զ () եւ գ (), որոնք տեղադրվում են Փորձեք եւ բանալի բառերի բռնել կազմաձեւված է գրավել MyException. Արդյունք է վերամշակման է դրսեւորել սխալ ուղերձ է մխիթարել:

Այսպիսով, այն գալիս է ավելացնել Java բացառությունները, իր ձեռքով.

Ճարտարապետություն բացառություններ

Ինչպես բոլոր օբյեկտների Java, բացառություններ են նաեւ ժառանգել եւ ունեն հիերարխիկ կառույց: Որ արմատային տարրը բոլոր սխալների նետում է այս ծրագրավորման լեզվի դասը java.lang.Throwable. Ժառանգել է նրա երկու տեսակի - Սխալ եւ բացառությունները:

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

Առավել հաճախ օգտագործվում դասի ստեղծման համար, եւ վերլուծելով բացառությունները է բացառությունները: Որը, իր հերթին, բաժանվում է մի քանի ճյուղերի, այդ թվում `RuntimeException: Ըստ RuntimeException են runtime բացառություններ, այսինքն, տեղի ծրագրի ընթացքում: Բոլոր դասընթացները ստացված դրան են unverifiable:

Հաճախ լինում են բացառություններ

Ի Ջավա բացառություններով, որոնց ցանկը ներկայացված է ստորեւ, որոնք օգտագործվում են առավել հաճախ, այնպես որ դուք պետք է նկարագրել նրանցից յուրաքանչյուրը հանգամանորեն:

  • ArithmeticException: Դրանք ներառում են սխալներ հետ կապված թվաբանական գործողությունների: Առավել վառ օրինակ բաժանումն է ըստ զրոյի:
  • ArrayIndexOutOfBoundsException - կոչ է array տարր շարք է, որը գերազանցում է ընդհանուր իր երկարությամբ.
  • ArrayStoreException - փորձ է նշանակել անհամատեղելի տարր տեսակը զանգված:
  • ClassCastException փորձ է բերել սխալ մի տեսակը մեկ այլ:
  • IllegalArgumentException - օգտագործելով սխալ բանավեճում եղանակով զանգի:
  • NegativeArraySizeException բացառություն, երբ դուք ստեղծեք մի զանգված բացասական չափի.
  • NullPointerException - չարաշահումը հղումներով փոշիացնող:
  • NumberFormatException - տեղի է ունենում այն ժամանակ, երբ սխալ լարային դարձի է ամբողջ թիվ.
  • UnsupportedOperationException - գործողությունը չի աջակցվում:

Այս օրինակները ներկայացնում տեսակի չճշտված Java բացառություններով: Բայց այնքան նայում ստուգվել:

  • ClassNotFoundException - Class չի գտնվել:
  • IllegalAcccessException - սահմանափակել մուտքը դեպի դասի.
  • InterruptedException - ընդհատում հոսքի:
  • NoSuchFieldException - չկան պարտադիր դաշտ.

Մեկնաբանության բացառություններով

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

NullPointerException: Հենց առաջին դեպքն է, երբ կա մի բացառություն, այն է, որ դիմելու է հղում է օբյեկտի, որը հավասար է զրոյի: Այն տարածվում է նաեւ զրոյական կարգի ատյանի մեթոդներով: NullPointerException կարող է նետված է ձեռք բերելու դեպքում հավասար երկարությամբ null զանգված: Նման իրավիճակներից խուսափելու համար պետք է պարբերաբար ստուգել կայքերը առ.

ArrayIndexOutOfBoundsException: Ցանկացած ծրագիր չի կարող գոյություն ունենալ առանց օգտագործման arrays. Ըստ այդմ, հաճախակի դիմելը դրան կարող է առաջացնել եւ սխալ: Բացառություն տեղի է ունենում այն ժամանակ, երբ մի մշակողի փորձում է մուտք գործել զանգված տարր, որը ոչ թե վարկանիշային աղյուսակում: Օրինակ, հայցվող արժեքը վերեւում կամ ներքեւում զրոյական երկարությամբ: Շատ հաճախ արդյունք է այն բանի, որ զանգվածի սկսվում հաշվով զրոյից.

գտածոները

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

Իհարկե, մի քիչ թե շատ պարզ ծրագրերի հետք նորմալ իրավիճակները շատ ավելի հեշտ է. Բայց մեծ ավտոմատացված համալիրների մի քանի հարյուր հազար գծերի դա հնարավոր է միայն որպես արդյունքում երկարաժամկետ փորձարկման եւ կարգաբերում:

Համար Java բացառության սխալի որից առաջանում են որոշ ծրագրեր, որոշ ընկերություններ առաջարկում են մի պարգեւատրում, երբ նրանք գտնում enthusiasts. Հատկապես բարձր է գնահատել ըստ այն է, որ կարող է առաջացնել խախտում է անվտանգության քաղաքականության ծրագրային ապահովման.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 hy.delachieve.com. Theme powered by WordPress.