Алдаа хаяулах, throw оператор

Тодорхой нөхцөлд жишээ нь тоог тэгд хуваах гэх мэт тохиолдолд систем өөрөө онцгой нөхцлийн генерацийг хийдэг. Гэхдээ C# хэл throw оператороор онцгой нөхцлийг гараар үүсгэх боломжийг олгодог. Өөрөөр хэлбэл throw оператороор бид өөрсдөө онцгой нөхцлийг үүсгэн түүнийг програмийн ажиллагааны үед дуудаж болно гэсэн үг.

Жишээ нь хэрэглэгчийн нэрийг аван консолд үзүүлэх

try
{
    Console.Write("Нэрээ оруулна уу: ");
    string? name = Console.ReadLine();
    if (name== null || name.Length < 2)
    {
        throw new Exception("Нэрийн урт 2 тэмдэгтээс бага байна.");
    }
    else
    {
        Console.WriteLine($"Таны нэр: {name}");
    }
}
catch (Exception e)
{
    Console.WriteLine($"Алдаа: {e.Message}");
}

код байлаа гэе. Хэрвээ нэрийн урт 2 тэмдэгтээс бага байвал онцгой нөхцлийг үүсгэнэ. Үүний тулд throw операторийн дараа онцгой нөхцлийн обьектийг заагаад түүний байгуулагчаар алдааны мэдээллийг дамжуулна. Exception төрлийн оронд бид онцгой нөхцлийн дурын обьектийг ашиглаж болох нь ойлгомжтой. Дараа нь catch блокт бидний үүсгэсэн онцгой нөхцлийн боловсруулалтыг хийнэ.
Ийм байдлаар бид програмийн дурын хэсэгт онцгой нөхцлийг үүсгэх боломжтой. Гэхдээ throw операторийн ард онцгой нөхцлийн обьектийг заалгүй ашиглах өөр хэлбэр бий. throw операторийг ингэж зөвхөн catch блокт хэрэглэж болдог. Жишээ нь

try
{
    try
    {
        Console.Write("Нэрээ оруулна уу: ");
        string? name = Console.ReadLine();
        if (name == null || name.Length < 2)
        {
            throw new Exception("Нэрийн урт 2 тэмдэгтээс бага байна.");
        }
        else
        {
            Console.WriteLine($"Таны нэр: {name}");
        }
    }
    catch (Exception e)
    {
        Console.WriteLine($"Алдаа: {e.Message}");
        throw;
    }
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

Энэ тохиолдолд 2 тэмдэгтээс бага урттай нэрийг оруулахад үүсэх онцгой нөхцлийг дотоод catch блок боловсруулна. Гэхдээ энэ блокт throw операторийг ашигласан тул онцгой нөхцлийг цааш гадаад catch блокт дамжуулна. Энд өмнөх блокт ирсэн онцгой нөхцөл дамжин ирэх учраас консолд дээрхтэй ижил мэдээллийг үзүүлнэ.

Мэдээлэл таалагдсан бол найзуудтайгаа хуваалцаарай.

  Нээгдсэн тоо: 1328 Төлбөртэй

 үүсвэр:

Өмнөх хичээлээр бид делегатын талаар тодорхой авч үзсэн. Энэ хичээлээр өмнөх хичээлд үзсэн зүйлүүдийг үргэлжлүүлэн үйл явдал гэдэг ойлголтыг авч үзнэ. Иймээс хичээлийн материалыг үзэхийн өмнө Делегат ба үйл явдал 1 хичээлийг сайтар судлан ойлгосон байх шаардлагатай.

Нэгдсэн /ерөнхийлөгдсөн/ делегат.

Дараах дохиолдолыг авч үзье. Бидэнд void (string) тодорхойлогчид тохирох аргад холбоотой CountDelegate гэсэн делегат байлаа гэж үзье. Яваандаа програмын ажиллагааны кодод void (string) тодорхойлогчид тохирох аргад холбоотой бас нэгэн TimesDelegate гэсэн делегат хэрэгтэй болох тохиолдол гарч ирэх бүрэн боломжтой. Ийм байдлаар 3 дахь 4 дэхь тохиолдлууд гарч болно.

  Нээгдсэн тоо: 276 Бүртгүүлэх

Нийтлэлээр графикийн хэвүүдийн /GUI pattern/ түүхийг авч үзье. Боловсруулалтын графикийн хэвүүдийг 30 гаруй жилийн туршид боловсруулж байгаа бөгөөд энэ хугацаанд гарч ирсэн бүх хэвүүдийн талаар авч үзэх нь боломжгүй зүйл. Иймээс сүүлийн 30 жилд бий болсон үндсэн хоёр чиг хандлагын талаар авч үзээд энэхүү хоёр хандлага эцэстээ Silverlight ийн MVVM ба WPF паттерн болон хувирсанг харцгаая. Хэрвээ та графикийн хэвүүдийн түүхийн талаарх мэдээллийг сонирхож байвал Мартин Фаулерын - GUI Architectures нийтлэлийг уншаарай.

  Нээгдсэн тоо: 586 Нийтийн

Өнөө үед мэдээллийн технологийн салбарт эрэлттэй, эрчимтэй хөгжүүлэлттэй, хамгийн хүчирхэг хэлүүдийн нэг бол програмчлалын C# хэл юм. Хэл дээр десктопийн жижигхэн програмаас эхлээд өдөрт сая сая хэрэглэгчид үйлчлүүлдэг том хэмжээний веб портал, сервисүүд гээд маш олон төрлийн програмуудыг боловсруулж байна.
C# залуу хэл биш бөгөөд .NET платформ хөгжлийн урт замыг туулсан. 2002 оны 2-р сард Microsoft Visual Studio .NET -тэй зэрэг хэлний анхны хувилбар гарсан.

  Нээгдсэн тоо: 1547 Төлбөртэй

Хичээлээр Linq гэж нэрлэдэг суурь технологийн талаар үзнэ. Гурван суурь , лямбда илэрхийлэл хичээлүүдэд үзсэн ойлголтуудыг энэхүү технологийн бэлтгэл гэж хэлж болно. Linq технологи нилээд өргөн хүрээний том асуудал тул нэг хичээлийн хүрээнд түүний бүх ухагдхууныг өнгөцхөн ч гэсэн үзэх боломжгүй гэдгийг тэмдэглэе. Иймээс хичээлийг Linq технологитой танилцах оршил гэж хэлж болно. Технолгийг C# хэлээр програм зохиоход өргөнөөр ашигладаг тул сайн ойлгон эзэмшсэн байх шаардлагатай.

Лямбда-илэрхийлэл нь нэргүй аргын хураангуй бичилтийг илэрхийлнэ. Лямбда-илэрхийлэл утга буцаадаг, буцаасан утгыг өөр аргын…

Нээгдсэн тоо : 66

 

Кодийн сайжруулалт /рефакторинг/ хичээлээр програмийн кодоо react -ийн зарчимд нийцүүлэн компонентод салгасан.…

Нээгдсэн тоо : 95

 

Хадгалагч (Memento) хэв обьектын дотоод төлвийг түүний гадна гаргаж дараа нь хайрцаглалтын зарчмыг зөрчихгүйгээр обьектыг сэргээх боломжийг олгодог.

Нээгдсэн тоо : 101

 

Делегаттай нэргүй арга нягт холбоотой. Нэргүй аргуудыг делегатийн хувийг үүсгэхэд ашигладаг.
Нэргүй аргуудын тодорхойлолт delegate түлхүүр үгээр…

Нээгдсэн тоо : 124

 

Математикт харилцан урвуу тоонууд гэж бий. Ямар нэгэн тооны урвуу тоог олохдоо тухайн тоог сөрөг нэг зэрэг дэвшүүлээд…

Нээгдсэн тоо : 125

 

Төсөлд react-router-dom санг оруулан чиглүүлэгчдийг бүртгүүлэн тохируулсан Санг суулган тохируулах хичээлээр бид хуудас…

Нээгдсэн тоо : 179

 

Хуваах нь нэг тоо нөгөө тоонд хэдэн удаа агуулагдаж буй тодорхойлох арифметикийн үйлдэл.
Хуваалтыг нэг бус удаа…

Нээгдсэн тоо : 119

 

Зуучлагч (Mediator) нь олон тооны обьектууд бие биетэйгээ холбоос үүсгэхгүйгээр харилцан ажиллах боломжийг хангах загварчлалын хэв юм. Ингэснээр…

Нээгдсэн тоо : 116

 

Делегатууд хичээлд ухагдхууны талаар дэлгэрэнгүй үзсэн ч жишээнүүд делегатийн хүчийг бүрэн харуулж чадахааргүй байсан.…

Нээгдсэн тоо : 127

 
Энэ долоо хоногт

Адил хажуут трапецын сууриуд 20 ба 12 см. Трапецыг багтаасан тойргийн төв их суурь дээр байрлах бол трапецын диагналыг ол.

Нээгдсэн тоо : 1169

 

тэгшитгэлийн язгууруудын нийлбэрийг ол.

Нээгдсэн тоо : 1089

 

Зурагт үзүүлсэн хагас тойрогт бол AB -ийн уртыг ол.

Нээгдсэн тоо : 840