Dart tiliga kirish O'zgaruvchilar va konstantalar Primitiv ma'lumotlar turlari


Download 374.15 Kb.
bet30/35
Sana11.05.2023
Hajmi374.15 Kb.
#1454719
1   ...   27   28   29   30   31   32   33   34   35
Bog'liq
3-mustaqil ish

Istisno sinflar

Dart-da istisnolarni qayta ishlash uchun asosiy klass bu istisno sinfidir, bu boshqa barcha turdagi istisnolar uchun asosiy sinfdir. Odatiy bo'lib, standart kutubxona bir qator o'rnatilgan istisno turlarini taqdim etadi. Masalan, oldingi mavzuda nolga bo'lish bajarilgan edi. Bu IntegerDivisionByZeroException turidagi istisnoga olib keldi, Istisnodan meros qilib olingan o'rnatilgan sinf.


try..catch konstruksiyasida biz ma'lum turdagi istisnolarni boshqarishimiz mumkin. Buning uchun on operatori ishlatiladi:




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

void main (){
try{
int x = 9;
int y = 0;
int z = x ~/ y;
print(z);
}
on Exception{
print("Обработка исключения в блоке on");
}
print("Завершение программы");
}

On bayonotidan keyin ko'rib chiqiladigan istisno turi ko'rsatiladi. Bunday holda, Istisno iborasi biz Exception turidagi istisnolarni ko'rib chiqayotganimizni aytadi. Va bu barcha istisnolar uchun asosiy tur bo'lganligi sababli, biz barcha istisnolarni hal qilamiz.


Ammo biz istisno turini ham aniqlashtirishimiz mumkin:




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

void main (){
try{
int x = 9;
int y = 0;
int z = x ~/ y;
print(z);
}
on IntegerDivisionByZeroException{
print("Обработка исключения IntegerDivisionByZeroException");
}
print("Завершение программы");
}

Bunday holda biz faqat IntegerDivisionByZeroException turidagi istisnolarni ko'rib chiqamiz. Agar sinab ko'rish blokida to'satdan boshqa turdagi istisnolar yuzaga kelsa, ular qayta ishlanmaydi.


Muayyan turdagi istisnolar bilan ishlash catch bloki yordamida amalga oshirilishi mumkin:




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

void main (){
try{
int x = 9;
int y = 0;
int z = x ~/ y;
print(z);
}
on IntegerDivisionByZeroException{
print("Обработка исключения IntegerDivizionByZeroException");
}
catch(e){
print("Возникло исключение: $e");
}
print("Завершение программы");
}

Bunday holda, agar IntegerDivisionByZeroException turidagi istisno ro'y bersa, u holda on blok uni boshqaradi, agar boshqa turdagi istisno bo'lsa, catch bloki.


Shuningdek, biz bloklarni birlashtira olamiz va ushlay olamiz:




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

void main (){
try{
int x = 9;
int y = 0;
int z = x ~/ y;
print(z);
}
on IntegerDivisionByZeroException catch(e, s){
print("Обработка исключения $e");
print("Стек $s");
}
print("Завершение программы");
}

O'rnatilgan istisno turlari


Dartda hozirda quyidagi turdagi istisnolar mavjud:

1   ...   27   28   29   30   31   32   33   34   35




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling