Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480

Можно ли настроить, чтобы в случае ошибки командное окно не закрывалось?

30.12.2021, 20:50. Показов 3278. Ответов 41
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочется, чтобы в случае ошибки командное окно не закрывалось, но запускать программу, каждый раз вызывая cmd и там прописывать путь, лень. Хочется просто щелкать на exe. Может можно где-нибудь в реестре указать или что-то в программе дописать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.12.2021, 20:50
Ответы с готовыми решениями:

Нужно чтобы окно не закрывалось по выполнению.
Кто-нибудь знает, как в VC++.NET сделать, чтобы окно отработавшей консольной программы не закрывалось по выполнению, а оставалось, как в...

Как сделать чтобы окно автоматом не закрывалось?
Памагите. Когда запускаю какойнибудь код то оч быстро выскакивает и закрывается. Как сделать чтобы окно автоматом не закрывалось?

Хочу, чтобы окно не закрывалось после выполнения программы
Написал программу преобразования температуры, заданной в Цельсиях, в температуру по Фаренгейту // Программа для преобразования...

41
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
31.12.2021, 14:35  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Элд Хасп Посмотреть сообщение
И исключение в нём, по мему, не сможет (без Дебагера) определить строку исходного кода Шарпа.
Я предполагал, что в файле pdb есть вся информация.
А студия пишет что-нибудь на диск, если программа крутится постоянно?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
31.12.2021, 15:05
Fylhtq05, в Exception есть же информация о строке.
Пример:
КонсольMicrosoft Windows [Version 10.0.19043.1415]
(c) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

C:\Users\EldHa>cd C:\Users\EldHa\Мои проекты\CyberForurm\CyberForumConsole\Fe br20y\bin\Debug\net5.0

C:\Users\EldHa\Мои проекты\CyberForurm\CyberForumConsole\Fe br20y\bin\Debug\net5.0>febr20y
Unhandled exception. System.Exception: Exception of type 'System.Exception' was thrown.
at Febr20y.Program.Main(String[] args) in C:\Users\EldHa\Мои проекты\CyberForurm\CyberForumConsole\Fe br20y\Program.cs:line 274

C:\Users\EldHa\Мои проекты\CyberForurm\CyberForumConsole\Fe br20y\bin\Debug\net5.0>


Вам ещё какая-то иная строка нужна?

Добавлено через 1 минуту
Цитата Сообщение от Fylhtq05 Посмотреть сообщение
А студия пишет что-нибудь на диск, если программа крутится постоянно?
А причем здесь Студия, если вы не в дебагере приложение запускаете?
1
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
31.12.2021, 15:20  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Вам ещё какая-то иная строка нужна?
Конечно. Мне нужна строка в методе, где произошло исключение, а не строка начала самого метода, в котором это произошло.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
А причем здесь Студия, если вы не в дебагере приложение запускаете?
Если студия ничего не пишет, я бы даже отлаженные приложения в ней запускал на всякий случай. А если пишет, то не приведет ли постоянно работающее приложение года через 3 к износу SSD?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
31.12.2021, 16:25
Цитата Сообщение от Fylhtq05 Посмотреть сообщение
Конечно. Мне нужна строка в методе, где произошло исключение, а не строка начала самого метода, в котором это произошло.
В моём примере строка 274 - это строка в которой произошло исключение.

Цитата Сообщение от Fylhtq05 Посмотреть сообщение
Если студия ничего не пишет
Думаю пишет, раз в ней есть автовосстановление файлов в случае сбоя.
Но вот сколько, как часто, в каких случаях не могу сказать.

Цитата Сообщение от Fylhtq05 Посмотреть сообщение
то не приведет ли постоянно работающее приложение года через 3 к износу SSD?
По сравнению с ОС можете считать, что Студия сама по себе ничего не пишет.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
31.12.2021, 16:37
Цитата Сообщение от Fylhtq05 Посмотреть сообщение
Мне нужна строка в методе, где произошло исключение
Если исключение во вложенном методе, то вывод (например) такой:
КонсольUnhandled exception. System.FormatException: Input string was not in a correct format.
at System.Number.ThrowOverflowOrFormatExcep tion(ParsingStatus status, TypeCode type)
at System.Number.ParseInt32(ReadOnlySpan`1 value, NumberStyles styles, NumberFormatInfo info)
at System.Int32.Parse(String s)
at QuotationsData.QuotationsTableTest.TestL oadString() in C:\Users\EldHa\Мои проекты\CyberForurm\CyberForumConsole\Fe br20y\QuotationsData\QuotationsTableTest .cs:line 132
at Febr20y.Program.Main(String[] args) in C:\Users\EldHa\Мои проекты\CyberForurm\CyberForumConsole\Fe br20y\Program.cs:line 295


295 - строка вызова метода.
132 - строка в вызванном методе где произошло исключение.
1
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
31.12.2021, 16:53  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
132 - строка в вызванном методе где произошло исключение.
Это строка начала метода (т.е. строка объявления метода), в котором произошло исключение, но не строка кода метода, на котором произошло исключение. Что и написал ранее.

Добавлено через 2 минуты
Цитата Сообщение от Элд Хасп Посмотреть сообщение
В моём примере строка 274 - это строка в которой произошло исключение.
Проверьте еще раз.

Добавлено через 1 минуту
Цитата Сообщение от Элд Хасп Посмотреть сообщение
По сравнению с ОС можете считать, что Студия сама по себе ничего не пишет.
А ОС я не перегружаю, пока не произойдет какой-нибудь ошибки в программе.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
31.12.2021, 17:20
Цитата Сообщение от Fylhtq05 Посмотреть сообщение
Это строка начала метода (т.е. строка объявления метода), в котором произошло исключение, но не строка кода метода, на котором произошло исключение. Что и написал ранее.
Я не знаю что у вас в коде.
В моём коде это строка возникновения исключения:

C#
295
            QuotationsTableTest.TestLoadString();
C#
6
7
8
    public class QuotationsTableTest
    {
        public static void TestLoadString()
C#
132
            var num = int.Parse("dsf");
Добавлено через 1 минуту
Цитата Сообщение от Fylhtq05 Посмотреть сообщение
А ОС я не перегружаю, пока не произойдет какой-нибудь ошибки в программе.
Я имел ввиду, что ОС тоже что-то пишет на диск.
И в сравнении с этим, то что пишет Студия - это мизер и можно этим пренебречь.
1
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
31.12.2021, 18:13  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Я не знаю что у вас в коде.
В моём коде это строка возникновения исключения:
Это у вас в режиме отладки. Строка в режиме отладки меня не интересует. А если щелкните на релиз, о чем я и пишу здесь, то строка срабатывания исключения будет = первой строке начала метода после {.
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
using System;
namespace ErrorCheck
{
    internal class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("Hello World!");
                Cl.Write();
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Исключение: {ex.Message}");
                Console.WriteLine($"Метод: {ex.TargetSite}");
                Console.WriteLine($"Трассировка стека: {ex.StackTrace}");
            }
        }
    }
    class Cl
    {
        public static void Write()
        {
            Console.WriteLine("h");
            Console.WriteLine("h");
            Console.WriteLine("h");
            int[] ari = new int[2] { 1, 2 };
            Console.WriteLine(ari[3]);
        }
    }
}
Теперь замена:
C#
1
2
3
4
5
6
7
8
public static void Write()
{
    Console.WriteLine("h");
    Console.WriteLine("h");
    Console.WriteLine("h");
    int[] ari = new int[2] { 1, 2 };
    Console.WriteLine(ari[3]);
}
Соответствующие выводы:
Microsoft Windows [Version 10.0.19044.1415]
(c) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

C:\Users\Андрей>C:\Users\Андрей\source\r epos\CheckError\CheckError\bin\Release\n et6.0\CheckError.exe
Hello World!
Исключение: Index was outside the bounds of the array.
Метод: Void Write()
Трассировка стека: at ErrorCheck.Cl.Write() in C:\Users\Андрей\source\repos\CheckError\ CheckError\Program.cs:line 25
at ErrorCheck.Program.Main(String[] args) in C:\Users\Андрей\source\repos\CheckError\ CheckError\Program.cs:line 11

C:\Users\Андрей>C:\Users\Андрей\source\r epos\CheckError\CheckError\bin\Release\n et6.0\CheckError.exe
Hello World!
h
h
h
Исключение: Index was outside the bounds of the array.
Метод: Void Write()
Трассировка стека: at ErrorCheck.Cl.Write() in C:\Users\Андрей\source\repos\CheckError\ CheckError\Program.cs:line 25
at ErrorCheck.Program.Main(String[] args) in C:\Users\Андрей\source\repos\CheckError\ CheckError\Program.cs:line 11

C:\Users\Андрей>

Добавлено через 6 минут
В первом случае:
C#
1
2
3
4
5
6
7
8
public static void Write()
        {            
            int[] ari = new int[2] { 1, 2 };
            Console.WriteLine(ari[3]);
            Console.WriteLine("h");
            Console.WriteLine("h");
            Console.WriteLine("h");
        }
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
31.12.2021, 18:32
Цитата Сообщение от Fylhtq05 Посмотреть сообщение
Это у вас в режиме отладки.
Нет.
Это не в режиме отладки.
Запускаю из командной строки экзешник.
0
jump
 Аватар для I can
5005 / 4770 / 852
Регистрация: 13.04.2015
Сообщений: 10,021
31.12.2021, 18:32
Оставлю ссылку на всякий случай. Как отловить необработанные исключения.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
31.12.2021, 18:37
Цитата Сообщение от Fylhtq05 Посмотреть сообщение
А если щелкните на релиз
А... вы имеете ввиду Сборку Debug и Release.
В Release режется много ненужной информации, так же там совсем другая оптимизация.
Часто даже невозможно из CIL Release перейти к конкретной строке исходного кода по которому получен этот CIL.

Если нужны строки и сходного кода, то эту информацию надо включить в сборку.
То есть сборка должна быть с Debug информацией.

Добавлено через 1 минуту
Для примера попробуйте сделать Release сборку и запустить её в Дебагере Студии на пошаговое исполнение.
Далеко не в любом месте кода это получится.
1
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
31.12.2021, 18:43  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
А... вы имеете ввиду Сборку Debug и Release.
Угу.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Если нужны строки и сходного кода, то эту информацию надо включить в сборку.
То есть сборка должна быть с Debug информацией.
Когда-то после отладок приходит время запуска релиза. Крутится месяц, а потом исключение непонятно на какой строке.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
31.12.2021, 18:46
Цитата Сообщение от Fylhtq05 Посмотреть сообщение
Когда-то после отладок приходит время запуска релиза. Крутится месяц, а потом исключение непонятно на какой строке.
Ничего не поделаешь.
Если нужна информация, то её надо включать в сборку.
В сборке Release этой информации нет, поэтому и вывести её невозможно.
1
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
31.12.2021, 19:04  [ТС]
Цитата Сообщение от I can Посмотреть сообщение
Оставлю ссылку на всякий случай.
Не могли бы пояснить, чем написание и добавление MyHandler к событию UnhandledException лучше try в Main на весь код?

Добавлено через 2 минуты
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Ничего не поделаешь.
А вы свои проекты клиентам передаете как релиз или дебаг, чтобы знать, что произошло?
0
jump
 Аватар для I can
5005 / 4770 / 852
Регистрация: 13.04.2015
Сообщений: 10,021
31.12.2021, 19:09
Цитата Сообщение от Fylhtq05 Посмотреть сообщение
в Main на весь код?
Main может быть и не на весь код.
2
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
31.12.2021, 19:11  [ТС]
Цитата Сообщение от I can Посмотреть сообщение
Main может быть и не на весь код.
Это мне не поднять)))
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
01.01.2022, 02:52
Цитата Сообщение от Fylhtq05 Посмотреть сообщение
А вы свои проекты клиентам передаете как релиз или дебаг, чтобы знать, что произошло?
Релиз.
Но перед этим тестирование.
Тестирование провожу не я, мне только сообщают о его результатах.

Добавлено через 2 минуты
Цитата Сообщение от Fylhtq05 Посмотреть сообщение
Не могли бы пояснить, чем написание и добавление MyHandler к событию UnhandledException лучше try в Main на весь код?
Если в майн несколько вызовов разных методов, то каждый можно обернуть в отдельный try и задать уникальную обработку.

Добавлено через 5 минут
Цитата Сообщение от AndreyVorobey Посмотреть сообщение
это сообщение отправлено автоматически, и в ответе не нуждается.

Я не хотел задеть вас никоим образом.
Вы много, часто и очень полезно отвечаете разным пользователям.
Я "двумя руками" за это.
Я хотел только обратить ваше внимание, что вопрос ТС несколько об ином.
Хотя вполне возможно сам ТС не вполне понимает предмет своего вопроса.
Но вам, как более опытному разработчику, стоило бы, на мой взгляд, уточнить, что, собственно, ТС хочет.
0
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
01.01.2022, 12:04  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
сам ТС не вполне понимает предмет своего вопроса.
Сколько же людей лучше меня знают, понимаю я свой вопрос или нет. Но ни разу не встречал тех, кто сомневается, понимают ли они свой ответ.
Всех С Новым годом!)))
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
01.01.2022, 13:09
Цитата Сообщение от Fylhtq05 Посмотреть сообщение
Сколько же людей лучше меня знают, понимаю я свой вопрос или нет.
Это же я обращался к AndreyVorobey.
И ремарка была относительно его предположения.
Я же (по смыслу) написал, что даже если это так (возможно), то лучше уточнить детали вопроса, чем давать неподходящие ответы.

Добавлено через 2 минуты
Fylhtq05, и в нашем с вами общении были прояснены многие такие детали, которые отсутствовали в первоначальном вопросе.
Что позволило более-менее полно понять проблему и возможно ли её решить.

Добавлено через 5 минут
Цитата Сообщение от Fylhtq05 Посмотреть сообщение
Всех С Новым годом!)))
Взаимно!
1
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
01.01.2022, 13:14  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
я обращался к AndreyVorobey.
А... Ну это совсем другое дело. Тогда можно еще разные предположения об этом TC разным участникам писать.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Что позволило более-менее полно понять проблему и возможно ли её решить.
Спасибо. И в этой теме и ранее в других реально помогли.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.01.2022, 13:14

Как сделать чтобы консольное окно само не закрывалось?
Собственно "Заголовок" и есть вопрос-) ну как сделаны например сервера из игры(DEDICATED) что у них что вводить команды можно, и окно не...

Как сделать чтобы окно в Visual c++ не закрывалось в винде ?
Как сделать чтобы окно после нажатия f5 в Visual c++ не закрывалось в винде ? я только начинаю напишите как можно подробней, если...

Как сделать, чтобы не закрывалось окно командной строки?
после исполнения оно закрывается. Не посмотреть результат(((

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

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru