2013-11-08 4 views
1

Я хочу, чтобы ограничить значения в переменную anzahlMinen чисел от 0 до 24.Исключение (TRY & поймать?)

Как я могу это сделать? Я знаю исключения, но я этого не делал.

static void Main(string[] args) 
    { 
     Console.WindowHeight = 23; 
     Console.WriteLine("Mit wievielen Bomben möchten Sie spielen?"); 
     int anzahlMinen = int.Parse(Console.ReadLine()); 
+0

Какое отношение относится к вашему описанию? И что делают Исключения в том, что вы хотите сделать? –

+2

Использование исключений в вашем случае - это не очень хорошая идея, я думаю. – ChruS

+0

@ChruS правильно, исключение должно быть выбрано только в случае исключений :), если вы можете избежать исключения, сделайте это – wudzik

ответ

1

вы можете использовать TryParse, для обработки нечисловых значений и разобрать его в целое, а затем проверить, если номер находится в пределах от 0 до 24 и обрабатывать неправильные номера, если

int i=0; 

var isNumber = int.TryParse(eingabe,out i); 

if(!isNumber || (i<0 || i>24)) 
{ 
    Console.WriteLine("Wrong Number"); 
    //break or whatever 
    //possibly use continue; to go back to first line of while 
    continue; 
} 

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

+0

Поскольку он, очевидно, новичок, вы должны заменить фраза * обрабатывать исключение * с * обрабатывать ошибку *, чтобы не путать его (экземпляр класса «Исключение» или исключительное условие). –

+0

@ThorstenDittmar, конечно же, спасибо :) – wudzik

3

Вам не нужны исключения для того, что вы хотите сделать:

string eingabe = Console.ReadLine(); 
int anzahlMinen = 0; 
if (!Int32.TryParse(eingabe, out anzahlMinen)) 
    Console.WriteLine("Dies ist keine gültige Zahl!"); 
else if (anzahlMinen < 0 || anzahlMinen > 24) 
    Console.WriteLine("Anzahl Minen muss zwischen 0 und 24 liegen!"); 

Почему вам не нужно/не Шоуд использовать исключения здесь:

Исключение используется для обозначения неожиданного состояния или ошибки в потоке программы. Пользователь, вводящий не номер или недопустимое значение, не является неожиданным и должен обрабатываться.

Кроме того, создание и обнаружение исключений оказывает огромное влияние на производительность вашего приложения, поэтому вам следует избегать ненужных исключений.

В-третьих, исключения указывают ошибки и никогда не должны когда-либо использоваться как средство контроля потока программы!

+0

yah, извините, я взял неправильный код :(Я вставил сейчас правильный. Можете ли вы посмотреть на него? Спасибо –

+0

Код в основном то, что я пишу, поэтому вам будет легко адаптировать его к вашему образцу. –

Смежные вопросы