- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
StringBuilder errorMessage = new StringBuilder();
int i = 0, j = 0;
bool outcome = true;
double value;
string[] label = new string[] { label1.Text, label2.Text, label4.Text };
textBox1.Text = textBox1.Text.Trim();
textBox2.Text = textBox2.Text.Trim();
textBox3.Text = textBox3.Text.Trim();
foreach (string field in (new string[] { textBox1.Text, textBox2.Text, textBox3.Text }))
{
try
{
if (field.Length == 0)
throw new Exception("отсутствует значение.\n");
if (j == 2)
value = int.Parse(field, NumberStyles.Integer);
else
value = double.Parse(field, NumberStyles.Float);
if (value <= 0)
throw new Exception("значение должно быть строго больше нуля.\n");
if (j == 2)
{
try
{
dateTimePicker1.Value.Date.AddMonths((int)value);
}
catch (Exception)
{
throw new Exception("превышено максимальное значение типа System.DateTime, " + DateTime.MaxValue.ToShortDateString() + ".\n" +
"Срок вклада не может превышать " +
((DateTime.MaxValue.Year - dateTimePicker1.Value.Date.Year) * 12 +
DateTime.MaxValue.Month - dateTimePicker1.Value.Date.Month).ToString() + " мес. " + "от указанной даты оформления, " + dateTimePicker1.Value.Date.ToShortDateString() + ".\n");
}
}
}
catch (Exception e)
{
errorMessage.Append((++i).ToString() + ". " + label[j] + ": ");
switch (e.GetType().ToString())
{
case "System.FormatException":
errorMessage.AppendLine("неверный формат числа.\n");
break;
case "System.OverflowException":
{
if (j < 2)
{
errorMessage.AppendLine("значение не может быть обработано вещественным типом System.Double.");
errorMessage.AppendLine("Значение типа должно быть строго больше нуля, в промежутке (0; " + double.MaxValue.ToString() + "].\n");
}
else
{
errorMessage.AppendLine("значение не может быть обработано целочисленным типом System.Int32.");
errorMessage.AppendLine("Значение типа должно быть строго больше нуля, в промежутке (0; " + int.MaxValue.ToString() + "].\n");
}
break;
}
default:
errorMessage.AppendLine(e.Message);
break;
}
outcome = false;
}
j++;
}
Мастер исключений 80-го уровня.
Хорошо, хоть не по мессаджам их разделяет.
Lokich 28.09.2015 15:25 # +3
imihajlov 28.09.2015 15:47 # −1
alex123098 18.10.2015 21:05 # 0
И потом еще
Чтоб себя вообще молодцом чувствовать
nihau 28.09.2015 21:04 # +1
Не хочу неявную типизацию, хочу говно ложкой жрать.
yamamoto 28.09.2015 23:56 # 0