Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/29: Рейтинг темы: голосов - 29, средняя оценка - 4.79
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307

Не обрабатывается исключение

05.12.2018, 19:50. Показов 5602. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
если ввожу 0 в одно из полей то ошибки нету, а она должна быть что не так в коде, для букв работает
C#
1
2
3
4
5
6
7
8
9
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
private void button2_Click(object sender, EventArgs c)
        {
            Application.Exit();
        }
 
        private double fun1(string m, string n)
        {
            double mm = double.Parse(m);
            double nn = double.Parse(n);
 
 
            double z1 = ((Math.Sqrt(Math.Pow(mm, 3) * nn) + nn * mm + (Math.Pow(mm, 2)) - mm));
 
            if (double.IsNegativeInfinity(z1) | double.IsPositiveInfinity(z1))
            {
                throw new DivideByZeroException();
            }
            return ((mm - 1) * (Math.Sqrt(mm)) - (nn - 1) * (Math.Sqrt(nn))) / (Math.Sqrt(Math.Pow(mm, 3) * nn) + nn * mm + (Math.Pow(mm, 2)) - mm);
        }
        private void btn_calc_Click(object sender, EventArgs с)
        {
            
              
 
                double z1;
                if (txt1.Text.Length > 0 && txt2.Text.Length > 0)
                {
                    if (radioButton1.Checked)
                    {
                        try
                        {
                            z1 = fun1(txt1.Text, txt2.Text);
                            MessageBox.Show(z1.ToString(), "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
 
                        }
                        catch (DivideByZeroException)
                        {
                            MessageBox.Show("Деление на ноль или infinity", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        catch (Exception)
                        {
                            MessageBox.Show("Вводите только цифры", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            txt1.Text = "";
                            txt2.Text = "";
                            
                        }
 
                    }
                    else
                    {
                        z1 = fun1(txt1.Text, txt2.Text);
                        MessageBox.Show(z1.ToString(), "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
 
        }
    }
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.12.2018, 19:50
Ответы с готовыми решениями:

Не обрабатывается исключение
Собственно есть, который действует крайне непредсказуемо: static void Main(string args) { try { ...

Не обрабатывается исключение try-catch
Помогите пожалуйста с задачей. Вот код: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Не обрабатывается событие
Доброе время суток. Есть объект NotifyIcon. Создали обработчик события DoubleClick (см. initTray) на ni_DoubleClick. Но этот...

13
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
05.12.2018, 20:13
Цитата Сообщение от kalanda Посмотреть сообщение
ошибки нету, а она должна быть
Почему она должна быть?
Если одно из введенных значений — 0, то из выражения https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{nm^3} + n \times m + m^2 - m никак не получится бесконечность.
Если, конечно, предположить что второе значение — не бесконечность.
1
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307
05.12.2018, 20:33  [ТС]
понял в чем проблема

Добавлено через 7 минут
можете помочь , как убрать ошибку не достижимый код, чтобы не было 2 return в одном месте?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private double fun1(string m, string n)
        {
            double mm = double.Parse(m);
            double nn = double.Parse(n);
 
 
            double z1 = ((Math.Sqrt(Math.Pow(mm, 3) * nn) + nn * mm + (Math.Pow(mm, 2)) - mm));
            double z2 = ((Math.Sqrt(mm)) - (Math.Sqrt(nn))) / mm; 
            if (double.IsNegativeInfinity(z2) | double.IsPositiveInfinity(z2))
            {
                throw new DivideByZeroException();
            }
            return ((mm - 1) * (Math.Sqrt(mm)) - (nn - 1) * (Math.Sqrt(nn))) / (Math.Sqrt(Math.Pow(mm, 3) * nn) + nn * mm + (Math.Pow(mm, 2)) - mm);
            return ((Math.Sqrt(mm)) - (Math.Sqrt(nn))) / mm;
        }
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
05.12.2018, 20:38
kalanda,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        private void fun1(string m, string n, out double x, out double y)
        {
            double mm = double.Parse(m);
            double nn = double.Parse(n);
 
 
            double z1 = ((Math.Sqrt(Math.Pow(mm, 3) * nn) + nn * mm + (Math.Pow(mm, 2)) - mm));
            double z2 = ((Math.Sqrt(mm)) - (Math.Sqrt(nn))) / mm;
            if (double.IsNegativeInfinity(z2) | double.IsPositiveInfinity(z2))
            {
                throw new DivideByZeroException();
            }
            x = ((mm - 1) * (Math.Sqrt(mm)) - (nn - 1) * (Math.Sqrt(nn))) / (Math.Sqrt(Math.Pow(mm, 3) * nn) + nn * mm + (Math.Pow(mm, 2)) - mm);
            y = ((Math.Sqrt(mm)) - (Math.Sqrt(nn))) / mm;
        }
0
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307
05.12.2018, 20:41  [ТС]
теперь появилась ошибка Ошибка CS7036 Отсутствует аргумент, соответствующий требуемому формальному параметру "x" из "MainForm.fun1(string, string, out double, out double)".
как исправить? fun1
C#
1
2
  z2 = fun1(txt1.Text, txt2.Text);
                            MessageBox.Show(z2.ToString(), "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
0
3 / 2 / 1
Регистрация: 06.03.2015
Сообщений: 6
05.12.2018, 20:44
C#
1
if (double.IsNegativeInfinity(z1) && double.IsPositiveInfinity(z1))
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
05.12.2018, 20:45
Лучший ответ Сообщение было отмечено kalanda как решение

Решение

kalanda,
C#
1
2
3
double x, y;
fun1(txt1.Text,txt2.Text, out x,out y);
MessageBox.Show(x.ToString() + " " + y.Tostring() и т.д.
1
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307
05.12.2018, 20:53  [ТС]
сделал но есть ошибка Ошибка CS1061 'double" не содержит определения для "Tostring" и не удалось найти метод расширения "Tostring", принимающий тип "double" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку)
C#
1
2
3
 double x, y;
                        fun1(txt1.Text, txt2.Text, out x, out y);
                        MessageBox.Show(x.ToString() + "  Результат", MessageBoxButtons.OK, MessageBoxIcon.Information + y.Tostring());
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
05.12.2018, 20:56
Цитата Сообщение от kalanda Посмотреть сообщение
C#
1
y.Tostring()
C# — чувствительный к регистру язык.
0
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307
05.12.2018, 21:00  [ТС]
если не сложно подправьте пожалуйста не получается
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
if (radioButton1.Checked)
                    {
                        try
                        {
                        double x, y;
                        fun1(txt1.Text, txt2.Text, out x, out y);
                        MessageBox.Show(x.ToString() + "  Результат", MessageBoxButtons.OK, MessageBoxIcon.Information + y.ToString());//это
 
                        }
                        catch (DivideByZeroException)
                        {
                            MessageBox.Show("Деление на ноль или infinity", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        catch (Exception)
                        {
                            MessageBox.Show("Вводите только цифры", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            txt1.Text = "";
                            txt2.Text = "";
                            
                        }
 
                    }
                    else
                    {
                        z2 = fun1(txt1.Text, txt2.Text);//это
                        MessageBox.Show(z2.ToString(), "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
05.12.2018, 21:08
kalanda, Поставьте переменную первым аргументом
C#
1
MessageBox.Show(x.ToString() + " " + y.ToString(),"Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
У вас же два значения.
0
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307
05.12.2018, 21:17  [ТС]
1 ошбика -
Ошибка CS7036 Отсутствует аргумент, соответствующий требуемому формальному параметру "x" из "MainForm.fun1(string, string, out double, out double)".
2)
Ошибка CS1503 Аргумент 3: не удается преобразовать из "System.Windows.Forms.MessageBoxIcon " в "System.Windows.Forms.MessageBoxButtons" .
3)
Ошибка CS1503 Аргумент 2: не удается преобразовать из "System.Windows.Forms.MessageBoxButt ons" в "string".

Добавлено через 5 минут
не хватало запятой, как тут исправить?
C#
1
2
 z2 = fun1(txt1.Text, txt2.Text);
                        MessageBox.Show(z2.ToString(), "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information);
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
05.12.2018, 21:23
kalanda, Да точно так же. У вас же код одинаковый.
0
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307
05.12.2018, 21:26  [ТС]
спасибо все работает сделал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.12.2018, 21:26
Помогаю со студенческими работами здесь

Не обрабатывается null значение
Добрый день, Есть строка if (dataRow.ItemArray == null) return; которая проверяет на null. Но во время работы выдаёт ошибку. И я не...

Не обрабатывается последнее слово
Подскажите, почему не обрабатывается последнее слово и как исправить. Спасибо using System; using System.Collections.Generic; ...

Неправильно обрабатывается null
Здравствуйте! Есть строка кода: c49_USPD.Value = $"{record.c30.Value.ToString() ?? string.Empty} (Системы и технологии,...

Не обрабатывается событие на закрытие com порта
Доброго времени суток! есть класс, который открывает соединение с ком портом и я в форму считываю данные. на форме есть кнопка, нажав на...

Разобраться с args[], файл для парсинга не обрабатывается
Вот небольшой парсер, никак не могу догнать что ему не нравится. Выдает что строка имела неверный формат ... public static...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru