Following examples in my C# book and I came across a book example that doesn't work in Visual Studio. It deals with creating your own exceptions, this one in particular is to stop you from taking the square root of a negative number. But when I create the NegativeNumberException by using "throw new" I get an error that says "The type or namespace name 'NegativeNumberException' could not be found (are you missing a using directive or an assembly reference?)"
How can I create my own exceptions if this isn't the right way? Maybe my book is outdated? Here's the code:
class SquareRootTest
{
static void Main(string[] args)
{
bool continueLoop = true;
do
{
try
{
Console.Write("Enter a value to calculate the sqrt of: ");
double inputValue = Convert.ToDouble(Console.ReadLine());
double result = SquareRoot(inputValue);
Console.WriteLine("The sqrt of {0} is {1:F6)
", inputValue, result);
continueLoop = false;
}
catch (FormatException formatException)
{
Console.WriteLine("
" + formatException.Message);
Console.WriteLine("Enter a double value, doofus.
");
}
catch (NegativeNumberException negativeNumberException)
{
Console.WriteLine("
" + negativeNumberException.Message);
Console.WriteLine("Enter a non-negative value, doofus.
");
}
} while (continueLoop);
}//end main
public static double SquareRoot(double value)
{
if (value < 0)
throw new NegativeNumberException(
"Square root of negative number not permitted.");
else
return Math.Sqrt(value);
}
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…