Member 13561094 Ответов: 1

Проблема с try and catch в C#


Я хочу, чтобы мое сообщение об ошибке появлялось, когда пользователь вводит что-либо, кроме цифр, но я получаю только сообщение об ошибке. Что я сделал не так :/?

Что я уже пробовал:

public static void Main(string [] args)
		{			 
			    int slumparen;
			    double FahrToCelsF;    
				Console.WriteLine("Välkommen till bastun!");
				int värme;
			    int fel;
			do{
			    Console.Write("Skriv in in tempratur: ");
			    värme = int.Parse(Console.ReadLine());
			    try
			    {
			    	fel = Convert.ToInt32(värme);
			    }
			    catch (FormatException e)
			    {
			    	Console.WriteLine("Try again with numbers!");
			    	Console.WriteLine(e);
			    }
			    FahrToCelsF = FahrToCels(värme);
			    slumparen = Slump(värme);
			    if (FahrToCelsF == 75) // 

1 Ответов

Рейтинг:
0

OriginalGriff

try и catch работает только в том случае, если код, который вы ожидаете провала, находится внутри блока ... и этот код потерпит неудачу первым:

värme = int.Parse(Console.ReadLine());
И это за пределами квартала.
Но вы не должны использовать исключения как часть "нормальной обработки". Вместо этого, прекратить использовать анализировать и использовать метод tryparse:
if (!int.TryParse(Console.ReadLine(), out värme))
    {
    Console.WriteLine("Try again with numbers!");
    return;
    }