Skirtumas tarp metimų ir metimų „Java“

Autorius: Laura McKinney
Kūrybos Data: 1 Balandis 2021
Atnaujinimo Data: 15 Gegužė 2024
Anonim
C++ | Конструктор | Деструктор | Оператор присваивания | Введение в ООП | 04
Video.: C++ | Конструктор | Деструктор | Оператор присваивания | Введение в ООП | 04

Turinys


Metimas ir metimas yra raktiniai žodžiai, naudojami tvarkant išimtis. mesti raktinis žodis naudojamas programuotojo sukurtos išimties egzemplioriui perduoti rankiniu būdu JVM. meta raktinis žodis, naudojamas atsakomybės už išimties tvarkymą perdavimui, atsirado naudojant metodą skambinančiajam. Pagrindinis skirtumas tarp metimo ir metimo yra tas, kad mesti raktinis žodis naudoja išimties objektą, o mesti raktinis žodis naudoja išimčių klasių pavadinimą.

  1. Palyginimo diagrama
  2. Apibrėžimas
  3. Pagrindiniai skirtumai
  4. Išvada

Palyginimo diagrama

Palyginimo pagrindasmestimeta
PagrindinisMūsų sukurto išimties objekto perkėlimas į raktinį žodį JVM perduodamas rankiniu būdu.Metimo raktinis žodis naudojamas perduoti atsakomybę už išimčių tvarkymą metodo skambintojui.
Sintaksėmesti mestą instanciją;return_type method_name (parametrų sąrašas) meta „ExceptionClass_list“
{
// metodo dalis
}
PaskuiMetimo raktinis žodis seka išimties objektas.Metimo raktinis žodis yra pateiktas išimčių klasių, kurios gali atsirasti taikant metodą, sąrašas.
Išmestų išimčių skaičiusAtmetimo raktinis žodis gali išmesti vieną išimties pavyzdį.Metimo raktinis žodis gali deklaruoti kelias išimčių klases, atskirtas kableliu.


Metimo apibrėžimas

Raktinis žodis „mesti“Yra naudojamas rankiniu būdu perduoti mūsų sukurtą išimties pavyzdį JVM („ Java Virtual Machine “). Jei „išmetimas“ nenaudojamas išimties egzemplioriui išmesti, o išimtis įvyksta, tada vykdymo sistema iš vidaus išmeta išimties pavyzdį JVM ir programa neįprastai pasibaigia. Bendra metimo raktinio žodžio forma yra:

mesti Throvable_instance;

Virš „Throvable_instance“ turi būti klasės „Throvable“ objektas. Primityvių tipų, tokių kaip int, float ar char, ir neišmetamų klasės pavyzdžių negalima mesti naudojant raktinį žodį.

Paimkime pavyzdį, kad suprastume raktinį žodį.

Klasės testas {Viešas statinis tuštumos pagrindinis ženklas (styginių kraštinės) {mesti naują ArithmeticException ("pagal nulį"); }}

Aukščiau pateiktame kode raktinis žodis mesti išimties klasės „ArithmeticException“ pavyzdį. Jei metimo raktinis žodis nebūtų buvęs naudojamas, pagrindinis () metodas viduje būtų sukūręs išimties objektą, perduotą JVM.


Taškai, kuriuos reikia atsiminti dėl raktinių žodžių mesti:

  • Išimties objektą jis rankiniu būdu perduoda JVM.
  • Tai geriausia naudoti vartotojo nustatytoms išimtims arba pritaikytoms išimtims.
  • Jei atmintis nėra paskirta išimties objektui, įmestam raktinio žodžio, tada atsiranda vykdymo laiko išimtis - „NullPointerException“.
  • Metimo raktinis žodis sustabdo programos vykdymą iškart po jos atsiradimo. mes negalime tiesiogiai rašyti jokio teiginio po metimo pareiškimo. Jei mes parašysime bet kurį vertinimą iškart po metimo ataskaitos, kompiliatorius kompiliavimo metu parodys klaidą, nepasiekiamą teiginį.
  • Tik metimo klasės objektai gali būti mesti naudojant raktinį žodį. Jei mestas objektas nėra „Throvable“ klasės objektas, gauname kompiliavimo laiko klaidą „Rasta nesuderinamas tipas. . reikalingas „java.lang“ .Traukiamasis “

Pastaba:

Metimo raktinis žodis naudojamas C ++, JAVA, C #, norint rankiniu būdu išmesti išimtį.

Metimų apibrėžimas

metaRaktinis žodis yra naudojamas perduoti atsakomybę už išimties, susijusios su metodu, tvarkymą jo skambintojo metodui. Skambinančiojo metodas yra atsakingas už išimties tvarkymą. Tai gali būti bet kuris kitas metodas arba JVM. Jis deklaruoja išimčių klasių, kurios gali atsirasti taikant šį metodą, sąrašą.

Taškinio žodžio naudojimas įtikina kompiliatorių, kad metodo išimtis turi būti nagrinėjama skambinančiojo metodu, taigi kompiliavimo klaidų nėra. Tačiau skambinančiojo metodas turi tvarkyti išimtį arba perduoti atsakomybę už išimties tvarkymą jo hierarchijos metodui. Kai atsiranda vykdymo laiko išimtis, net ir panaudojus raktinių žodžių naudojimą, tai netrukdo neįprastai nutraukti programos. Jei skambinančiojo metodas yra pagrindinis (), numatytasis JVM tvarko išimtį.

Bendra metimų raktinio žodžio forma yra:

return_type metodo_pavadinimas (parametrų sąrašas) meta „activClass_list“ {// metodo pagrindą}

Matome, kad raktinis žodis pasirodo po metodo parašo, ir jame gali būti išimčių klasių, kurios gali atsirasti naudojant metodą, sąrašas. Išimties klasių sąrašas, parašytas po raktinio žodžio metimo, yra atskiriamas kableliu.

Paimkime vieną pavyzdį, kad suprastume metimų raktinį žodį.

calss Test {viešas statinis void main (String args) meta InterruptedException {gijos miegas (10000); }}

Aukščiau pateiktame kode pagrindinis sriegis priverstas kurį laiką miegoti, naudojant miego () metodą. Dabar, kai pagrindinis būdas yra miegas, gali būti, kad kiti siūlai gali pertraukti pagrindinį siūlą. Tačiau metant raktinį žodį naudojamasi po pagrindinio () metodo parašo, todėl programa lengvai sukompiliuos. Metimų raktinis žodis skelbia pažymėtą išimties klasę „InterruptedException“. Dabar, jei kuris nors kitas gija pertraukia pagrindinį siūlą vykdymo metu, metimo žodis perduos tą išimtį pagrindinio () metodo skambinančiajam, kuris yra JVM. JVM nutraukia programą neįprastai.

Taškai, kuriuos reikia atsiminti dėl metimo raktinio žodžio:

  • Metimų raktinis žodis naudojamas tik deklaruojamoms išimčių klasėms deklaruoti. Metimo raktinio žodžio naudojimas nepatikrintai išimtiai neturi jokios įtakos.
  • Jei metodas nenori savarankiškai tvarkyti išimties, jis šią išimtį deleguoja tos klasės skambinančiojo metodu, naudodamas metimo raktinį žodį.
  • Jo naudojimas leidžia sklandžiai sudaryti programą.
  • Jei vykdymo metu įvyksta išimtis, programa nutraukiama neįprastai, net ir panaudojus metimo raktinį žodį.
  • Normaliam programos nutraukimui rekomenduojama naudoti bandymo / gavimo bloką, jei vykdymo metu įvyksta išimtis.

Pastaba:

Raktažodžiai, naudojami tik „Java“. C ++ ir C # nenaudoja mesti raktinio žodžio.

  1. Raktinio žodžio išmetimas, atsakomybės už išimčių tvarkymą perdavimas JVM rankiniu būdu, o raktinio žodžio perdavimas atsakomybės už išimties tvarkymą perdavimas skambinančiojo metodu, kodu, kur įvyko išimtis.
  2. Metimo raktinis žodis seka išimties objektu, kurį jis perduoda JVM. Kita vertus, mesti raktinį žodį seka išimčių klasės, kurios gali atsirasti taikant metodą.
  3. Raktinis žodis vienu metu gali mesti vieną išimties objektą, tuo tarpu raktinis žodis vienu metu gali deklaruoti kelias išimčių klases, atskirtas kableliu.

Išvada:

Metimo raktinis žodis geriausiai naudojamas pritaikytai išimčiai. Išbandymo blokas yra geriausias, jei norite tvarkyti išimtis, palyginti su raktiniais žodžiais.