Следующие примеры в моей книге на C#, и я натолкнулся на пример книги, который не работает в Visual Studio. Он занимается созданием собственных исключений, в частности, это означает, что вы не должны принимать квадратный корень из отрицательного числа. Но когда я создаю исключение NegativeNumberException, используя «throw new», я получаю сообщение об ошибке: «Невозможно найти имя типа или пространства имен« NegativeNumberException »(вам не хватает директивы использования или ссылки на сборку?)»создание моих собственных исключений C#
могу ли я создать свои собственные исключения, если это не так? Может быть, моя книга устарела? Вот код:
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)\n", inputValue, result);
continueLoop = false;
}
catch (FormatException formatException)
{
Console.WriteLine("\n" + formatException.Message);
Console.WriteLine("Enter a double value, doofus.\n");
}
catch (NegativeNumberException negativeNumberException)
{
Console.WriteLine("\n" + negativeNumberException.Message);
Console.WriteLine("Enter a non-negative value, doofus.\n");
}
} 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);
}
}
Необходимо создать класс «NegativeNumberException», который будет получен из System.Exception. Вы не можете просто помещать имена классов там, чтобы создавать вещи. –