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

Обработка исключений

07.09.2013, 19:25. Показов 1346. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Мне поставлена задача - сделать математически простую программу (перевод одних единиц в другие), но с непробиваемой защитой от дурака. То есть нажатие любой комбинации клавиш (кроме alt+f4, наверное...) не должны приводить к ее завершению. Нужно написать "Произошла ошибка, попробуйте снова".

Контроль вводимых значений я сделал через try-catch, но сейчас обнаружил, что программа завершается при нажатии CTRL+C. В консоль вводится символ ^C и программа завершает работу. А нужно бы вывести "Некорректный ввод, попробуйте снова".

Как сделать такое? И какими еще сочетаниями можно "завалить" программу?

>> Консольное приложение C#. Visual Studio 2010.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.09.2013, 19:25
Ответы с готовыми решениями:

Обработка исключений
С#. Как обработать исключительную ситуацию с извлечением числа из-под корня через try и catch

Обработка исключений
Вот есть код using System; namespace ARA { public class a24 { public enum Month { Январь = 1, ...

Обработка исключений
Господа, скажите пожалуйста, почему в этом коде try { a jo = new a(); ...

8
1652 / 715 / 47
Регистрация: 11.03.2012
Сообщений: 1,855
Записей в блоге: 1
07.09.2013, 19:36
jen941, а ты не подумал, что через диспетчер задач без проблем ее закроют?
0
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 69
07.09.2013, 19:38  [ТС]
Нет, сейчас смысл именно в защите клавиатуры...
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
07.09.2013, 19:46
jen941, Ну, берешь чистый С пишешь хуки на все что можно... Только ни один антивирь такого к себе отношения не потерпит. Так что либо вашу программу все-таки можно закрыть, либо это - вирус, даже если это просто елочка в углу экрана.
0
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 69
07.09.2013, 20:10  [ТС]
Объясните, пожалуйста...
1. Есть программа
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            int hour = 0; int minute = 0; int error = 0;
            try
            {
                hour = int.Parse(System.Console.ReadLine());
            }
            catch
            {
                error = 1;
            }
 
            if (error == 0)
            {
                minute = hour * 60;
                System.Console.WriteLine("Result = " + minute);
            }
            else
            {
                System.Console.WriteLine("Error");
            }
 
        }
    }
}
2. Есть тема, где, похоже, написано то, что мне нужно
3. Куда нужно вставить приведенные там коды? Или как модифицировать свой?

Нужно, чтобы программа не реагировала на CTRL+C или обрабатывала его, не завершаясь

Добавлено через 9 минут
И еще вопрос - что можно почитать по этому поводу, чтобы быть в теме. Только не пару томиков, а странички в Интернете. Или просто тему, которую гуглить.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
07.09.2013, 20:20
jen941, лично у меня по этому сочетанию закрывается даже намертво повисшая программа. Так что не уверен, что это возможно средставми C#. А винапи легче писать на С, чем париться с Pinvoke
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
07.09.2013, 20:36
Цитата Сообщение от jen941 Посмотреть сообщение
Нет, сейчас смысл именно в защите клавиатуры...
C#
1
Console.TreatControlCAsInput = true;
2
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 69
07.09.2013, 21:48  [ТС]
kolorotur, спасибо большое! Это как раз то, что мне нужно

Добавлено через 15 минут
Вот блин, эта функция с багом от Майкрософта(( Перестает нормально работать ввод
ссылка 1, ссылка 2

Очень не хотелось, но придется делать через посимвольный ввод Console.ReadLine().
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
07.09.2013, 22:00
CTRL+C это аналог alt+f4 для консоли - команда закрыть приложение, нафига от него защищаться??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.09.2013, 22:00
Помогаю со студенческими работами здесь

Обработка исключений
В учебной задачке необходимо обрабатывать все исключительные ситуации. Через блок try-catch-finally. Вот небольшой метод, где всё работает,...

Обработка исключений
Задание Используя Visual Studio, создайте проект по шаблону Console Application. Создайте класс Calculator. В теле класса...

Обработка исключений
Здравствуйте! Такая проблема, что надо сделать обработку исключений, если пользователь вместо цифры введет букву в textBox. Практически все...

Обработка исключений
Можно ли в методе А1 обработать исключение, которое создаётся методом А3? Вот схематическое изображение кода. void A1() { ...

Обработка исключений
Хочу создать исключение,чтобы выдавал ошибку ,если пользователь не ввел данные. Подскажите,что не так? for (int i = 0; i < 5; i++) ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru