مراجعة الحل لتحدي إنشاء الاستثناءات وطرحها

مكتمل

التعليمات البرمجية التالية هي أحد الحلول الممكنة للتحدي من الوحدة السابقة:

string[][] userEnteredValues = new string[][]
{
            new string[] { "1", "2", "3"},
            new string[] { "1", "two", "3"},
            new string[] { "0", "1", "2"}
};

try
{
    Workflow1(userEnteredValues);
    Console.WriteLine("'Workflow1' completed successfully.");

}
catch (DivideByZeroException ex)
{
    Console.WriteLine("An error occurred during 'Workflow1'.");
    Console.WriteLine(ex.Message);
}

static void Workflow1(string[][] userEnteredValues)
{
    foreach (string[] userEntries in userEnteredValues)
    {
        try
        {
            Process1(userEntries);
            Console.WriteLine("'Process1' completed successfully.");
            Console.WriteLine();
        }
        catch (FormatException ex)
        {
            Console.WriteLine("'Process1' encountered an issue, process aborted.");
            Console.WriteLine(ex.Message);
            Console.WriteLine();
        }
    }
}

static void Process1(String[] userEntries)
{
    int valueEntered;

    foreach (string userValue in userEntries)
    {
        bool integerFormat = int.TryParse(userValue, out valueEntered);

        if (integerFormat == true)
        {
            if (valueEntered != 0)
            {
                checked
                {
                    int calculatedValue = 4 / valueEntered;
                }
            }
            else
            {
                throw new DivideByZeroException("Invalid data. User input values must be non-zero values.");
            }
        }
        else
        {
            throw new FormatException("Invalid data. User input values must be valid integers.");
        }
    }
}

يؤدي تشغيل هذا التطبيق إلى إنشاء الإخراج المطلوب:

'Process1' completed successfully.

'Process1' encountered an issue, process aborted.
Invalid data. User input values must be valid integers.

An error occurred during 'Workflow1'.
Invalid data. User input values must be non-zero values.

هذه التعليمة البرمجية هي مجرد "حل واحد ممكن" لأن هناك العديد من الطرق لإنشاء الاستثناءات وطرحها. طالما حصلت على النتائج الصحيحة وفقا للقواعد في التحدي، ففعلت ذلك بشكل رائع!

نهنئك في حال نجاحك! تابع لاختبار المعلومات في الوحدة التالية.

هام

إذا واجهت مشكلة في إكمال هذا التحدي، فربما يجب عليك مراجعة الوحدات السابقة قبل المتابعة.