แบบฝึกหัด - ทํากิจกรรมการทดสอบให้เสร็จสมบูรณ์สําหรับการสร้างและโยนข้อยกเว้น

เสร็จสมบูรณ์เมื่อ

ความท้าทายของโค้ดในโมดูลนี้ใช้เพื่อเสริมกําลังสิ่งที่คุณได้เรียนรู้และช่วยให้คุณได้รับความเชื่อมั่นก่อนที่จะดําเนินการต่อ

สร้างและโยนการทดสอบข้อยกเว้น

ในการทดสอบนี้ คุณเริ่มต้นด้วยแอปพลิเคชันตัวอย่างที่ใช้ชุดของการเรียกเมธอดเพื่อประมวลผลข้อมูล คําสั่งระดับบนสุดจะสร้างอาร์เรย์ของค่าอินพุตผู้ใช้และเรียกใช้เมธอด ที่ชื่อว่าWorkflow1 Workflow1แสดงเวิร์กโฟลว์ระดับสูงที่วนรอบผ่านอาร์เรย์ และส่งผ่านค่าที่ป้อนเข้าของผู้ใช้ไปยังเมธอด ที่ชื่อว่าProcess1 Process1 ใช้ข้อมูลป้อนเข้าของผู้ใช้เพื่อคํานวณค่า

ในปัจจุบัน เมื่อ Process1 พบปัญหาหรือข้อผิดพลาด จะส่งกลับสตริงที่อธิบายปัญหาแทนที่จะโยนข้อยกเว้น ความท้าทายของคุณคือการใช้การจัดการข้อยกเว้นในแอปพลิเคชันตัวอย่าง

ใช้ขั้นตอนต่อไปนี้เพื่อดําเนินการชาเลนจ์:

  1. ใช้โค้ดต่อไปนี้เป็นแอปพลิเคชันตัวอย่างเริ่มต้นของคุณ:

    string[][] userEnteredValues = new string[][]
    {
                new string[] { "1", "2", "3"},
                new string[] { "1", "two", "3"},
                new string[] { "0", "1", "2"}
    };
    
    string overallStatusMessage = "";
    
    overallStatusMessage = Workflow1(userEnteredValues);
    
    if (overallStatusMessage == "operating procedure complete")
    {
        Console.WriteLine("'Workflow1' completed successfully.");
    }
    else
    {
        Console.WriteLine("An error occurred during 'Workflow1'.");
        Console.WriteLine(overallStatusMessage);
    }
    
    static string Workflow1(string[][] userEnteredValues)
    {
        string operationStatusMessage = "good";
        string processStatusMessage = "";
    
        foreach (string[] userEntries in userEnteredValues)
        {
            processStatusMessage = Process1(userEntries);
    
            if (processStatusMessage == "process complete")
            {
                Console.WriteLine("'Process1' completed successfully.");
                Console.WriteLine();
            }
            else
            {
                Console.WriteLine("'Process1' encountered an issue, process aborted.");
                Console.WriteLine(processStatusMessage);
                Console.WriteLine();
                operationStatusMessage = processStatusMessage;
            }
        }
    
        if (operationStatusMessage == "good")
        {
            operationStatusMessage = "operating procedure complete";
        }
    
        return operationStatusMessage;
    }
    
    static string Process1(String[] userEntries)
    {
        string processStatus = "clean";
        string returnMessage = "";
        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
                {
                    returnMessage = "Invalid data. User input values must be non-zero values.";
                    processStatus = "error";
                }
            }
            else
            {
                returnMessage = "Invalid data. User input values must be valid integers.";
                processStatus = "error";
            }
        }
    
        if (processStatus == "clean")
        {
            returnMessage = "process complete";
        }
    
        return returnMessage;
    }
    
  2. ตรวจสอบว่าแอปพลิเคชันตัวอย่างพิมพ์ข้อความต่อไปนี้ไปยังคอนโซล:

    'Process1' completed successfully.
    
    'Process1' encountered an issue, process aborted.
    Invalid data. User input values must be valid integers.
    
    'Process1' encountered an issue, process aborted.
    Invalid data. User input values must be non-zero values.
    
    An error occurred during 'Workflow1'.
    Invalid data. User input values must be non-zero values.
    
  3. อัปเดตแอปพลิเคชันตัวอย่างโดยใช้ข้อกําหนดต่อไปนี้:

    • วิธีการทั้งหมดต้องถูกแปลงจาก static string วิธีการ เป็น static void วิธีการ
    • เม Process1 ธอด ต้องโยนข้อยกเว้นสําหรับปัญหาแต่ละชนิดที่พบ
    • เม Workflow1 ธอด ต้องจับและจัดการ FormatException ข้อยกเว้น
    • คําสั่งระดับบนสุดต้องจับและจัดการ DivideByZeroException ข้อยกเว้น
    • Messageคุณสมบัติของข้อยกเว้นต้องใช้เพื่อแจ้งให้ผู้ใช้ทราบถึงปัญหา
  4. โซลูชันที่เสร็จสมบูรณ์ของคุณต้องพิมพ์ข้อความต่อไปนี้ไปยังคอนโซล:

    '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.
    

โชคดี!