Алдаа хаяулах, 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 блокт дамжуулна. Энд өмнөх блокт ирсэн онцгой нөхцөл дамжин ирэх учраас консолд дээрхтэй ижил мэдээллийг үзүүлнэ.

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

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

Обьект хандлагат програмчлал encapsulation - хайрцаглалт, inheritance - удамшилт, polymorphism - полиморфизм гэсэн гурван үндсэн зарчим дээр суурилдаг гэдгийг өмнөх хичээлүүдэд үзсэн. Энэ хичээлээр polymorphism - полиморфизм зарчмын талаар үзэх болно. Монголоор орчуулгад тохирох үгийг би олж чадаагүй. Полиморфизм гэдэг нь суурь классын ажиллагааны төлөв байдлыг хүүхэд класст өөрчлөхийг хэлнэ. Ойлгомжгүй байна уу. Гэхдээ үнэндээ бол тийм нарийн зүйл биш.

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

Бүх онцгой нөхцлүүдийн суурь бол Exception төрөл. Төрөлд онцгой нөхцлийн талаарх мэдээллийг авч болох хэдэн шинжийг тодорхойлсон байдаг. Үүнд:

  • InnerException - үүссэн онцгой нөхцлийн шалтгаан болсон онцгой нөхцлийн тухай мэдээллийг хадгална.
  • Message - алдааны мэдээллийг хадгална
  • Source - онцгой нөхцлийг дуудсан обьект эсхүл багцын нэрийг хадгална
  • StackTrace - онцгой нөхцлийг үүсгэхэд хүргэсэн дуудалтын стекийг мөр илэрхийллээр буцаана
  • TargetSite - онцгой нөхцөл дуудагдсан аргыг буцаана

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

Виртуал аргууд, шинжүүд хичээлд виртуал аргуудыг тодорхойлох, дахин тодорхойлохыг үзсэн. Суурь классаас өвлөн авсан функцтоналуудыыг өөрчлөх өөр арга бол нуух (shadowing / hiding) юм. Арга, шинжүүдийг нуух нь үнэндээ суурь классийн арга эсхүл шинжүүдтэй нэр, параметрүүдийн багцаар тохирох арга, шинжийг удамшсан класст тодорхойлох юм. Классийн гишүүнийг нуухдаа new түлхүүр үгийг хэрэглэдэг.

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

Гурван суурь I хичээлд бид C# хэлний Тодорхой бус /далд/ төрөлжилт, Нэргүй төрлүүдийн талаар үзсэн. Энэ удаад Өргөжүүлэлтийн аргуудын талаар авч үзнэ. Ямарч програмын хэлийг сайн эзэмшихийн тулд тухайн хэлний нарийн механизмуудыг ойлгосон байх хэрэгтэй. Түүнээс давталт, нөхцөлт операторууд гэх мэтийн бүх хэлэнд байдаг цөөн тооны ерөнхий ойлголтоор програмын кодыг бичнэ гэвэл бараг бүтэхгүй зүйл. Бичсэн байсан ч таны код эхлэн суралцагч эсхүл сонирхогчийн түвшинд л харагдахын дээр тавигдсан асуудлыг бүрэн шийднэ гэхэд хэцүү.

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

функц өгөгдөв.

  1. f(x) функцын x0=5 абсцисстай M цэгт татсан шүргэгч шулууны тэгшитгэл
  2. f(x) функцын график, дээрх шүргэгч шулуун болон координатын тэнхлэгүүдээр хүрээлэгдсэн дүрсийн талбай  
  3. f(x) функцын графикийг M цэгт шүргэх, төв нь OX (абсцисс) тэнхлэг дээр орших тойргийн тэгшитгэл

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

 

20 хувийн концентрацитай 18 гр уусмал дээр концентрацийг нь 4 хувиар нэмэгдүүлэхийн тулд 26 хувийн концентрацитай хичнээн грамм уусмал нэмж хийх шаардлагтай вэ?

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

 

тэгшитгэлийн шийдийг ол.

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