Oluşturma ve özel durum oluşturma sınaması için çözümü gözden geçirin
Aşağıdaki kod, önceki ünitedeki sınama için olası çözümlerden biridir:
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.");
}
}
}
Bu uygulamayı çalıştırmak gerekli çıkışı oluşturur:
'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.
Bu kod yalnızca "olası çözümlerden biridir" çünkü özel durumlar oluşturmanın ve fırlatmanın birçok yolu vardır. Doğru sonuçları meydan okumadaki kurallara göre elde ettiyseniz, harika bir iş başardınız!
Başarılı olduysanız tebrikler! Sonraki ünitede verilen bilgi kontrolüyle devam edin.
Önemli
Bu sınamaya tamamlama konusunda sorun yaşadıysanız, devam etmeden önce önceki üniteleri gözden geçirmeniz iyi olabilir.