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


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

DeferredLoadException

  • FormatException

  • IntegerDivisionByZeroException

  • IOException

  • FileSystemException

  • HttpException

  • ProcessException

  • SignalException

  • SocketException

  • StdinException

  • StdoutException

  • TlsException

  • WebSocketException

  • IsolateSpawnException

  • TimeoutException

  • DeferredLoadException

  • FormatException

  • IntegerDivisionByZeroException

  • IOException

  • FileSystemException

  • HttpException

  • ProcessException

  • SignalException

  • SocketException

  • StdinException

  • StdoutException

  • TlsException

  • WebSocketException

  • IsolateSpawnException

  • TimeoutException

    Biz ko'rib chiqmoqchi bo'lgan har bir istisno turi uchun biz blokda o'zimizni qo'shishimiz mumkin:




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

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


    Throw bayonoti va o'z istisno turlarini yaratish

    Bayonotni tashlash


    Throw iborasi bizga istisnoni to'g'ri joyga tashlashga imkon beradi. Quyidagi kodni ko'rib chiqing:


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26

    void main (){
    try{
    Person tom = Person("Tom", -45);
    print(tom.age);
    }
    on Exception catch(e){
    print(e);
    }
    print("Завершение программы");
    }
    class Person{
    String name;
    int age = 1;
    Person(this.name, age){
    if(age < 1 || age > 110) {
    throw Exception("Недопустимый возраст");
    }
    else{
    this.age = age;
    }
    }
    }

    Masalan, yangi foydalanuvchi - Person sinfining ob'ektini yaratishda biz konstruktorga yoshga qarab yaroqsiz (masalan, salbiy qiymat) o'tish holatlarining oldini olishni xohlaymiz. Bunday holda, biz throw iborasi yordamida istisno yaratishimiz mumkin:




    1

    throw Exception("Недопустимый возраст");

    Xabar Istisno konstruktoriga uzatiladi, uni istisno bilan ishlashda olish mumkin.


    Shunday qilib, try blokida quyidagi qatorni bajarayotganda, istisno qilinadi:




    1

    Person tom = Person("Tom", -45);

    Va on..catch blokida siz ushbu istisnoni hal qilishingiz mumkin:





    1
    2
    3

    on Exception catch(e){
    print(e);
    }

    Catch blokidagi e argumenti bilan biz xato xabarini olishimiz mumkin. Konsol chiqishi:

    Exception: Недопустимый возраст
    Завершение программы

    O'zingizning istisnolaringizni yaratish


    O'rnatilgan Dart kutubxonasi har xil turdagi istisnolarni taqdim etadi. Biroq, ba'zi muayyan holatlar uchun biz o'z istisno turlarini yaratishni xohlashimiz mumkin. Misol uchun, yuqoridagi misolda, foydalanuvchining yoshi bilan biz barcha harakatlarni alohida istisno sifatida tartibga solishimiz mumkin. Masalan:


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31

    void main (){
    try{
    Person tom = Person("Tom", -45);
    print(tom.age);
    }
    on AgeException catch(e){
    print(e.getErrorMessage());
    }
    print("Завершение программы");
    }
    class Person{
    String name;
    int age = 1;
    Person(this.name, age){
    if(age < 1 || age > 110) {
    throw AgeException();
    }
    else{
    this.age = age;
    }
    }
    }
    class AgeException implements Exception{
    String getErrorMessage() {
    return "Недопустимый возраст";
    }
    }

    Dasturning konsol chiqishi:


    Недопустимый возраст
    Завершение программы

    AgeException istisno klassi bu yerda aniqlanadi, bu Exception tipidagi interfeysni amalga oshiradi. (Aslida, biz Istisnoni amalga oshirmasdan sinfni belgilashimiz mumkin). Va bu sinf xato xabarini qaytaradigan o'zining getErrorMessage usuliga ega.


    Istisnoni ko'rib chiqishda biz xato xabarini ko'rsatish uchun ushbu usuldan foydalanishimiz mumkin:





    1
    2
    3

    on AgeException catch(e){
    print(e.getErrorMessage());
    }

    Bunday holda, catchdagi e parametri getErrorMessage usulini chaqirish mumkin bo'lgan AgeException ob'ektini ifodalaydi.





    Download 374.15 Kb.

    Do'stlaringiz bilan baham:
  • 1   ...   27   28   29   30   31   32   33   34   35




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