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

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

05.12.2018, 19:50. Показов 5549. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru