ตรวจสอบโซลูชันสําหรับการทดสอบการสร้างและข้ามข้อยกเว้น
โค้ดต่อไปนี้เป็นหนึ่งในวิธีแก้ไขปัญหาที่เป็นไปได้สําหรับการทดสอบจากหน่วยก่อนหน้า:
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.
รหัสนี้เป็นเพียง "หนึ่งโซลูชันที่เป็นไปได้" เนื่องจากมีหลายวิธีในการสร้างและโยนข้อยกเว้น ตราบใดที่คุณได้รับผลลัพธ์ที่ถูกต้องต่อกฎในการทดสอบจากนั้นคุณก็ทําได้ยอดเยี่ยม!
ถ้าคุณทําสําเร็จ ขอแสดงความยินดี! ดําเนินการต่อไปที่การตรวจสอบความรู้ในหน่วยถัดไป
สําคัญ
หากคุณประสบปัญหาในการดําเนินการการทดสอบนี้ให้เสร็จสมบูรณ์ บางทีคุณควรตรวจสอบหน่วยก่อนหน้านี้ก่อนที่คุณจะดําเนินการต่อ