Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Сообщение

Barlog M.


Молчун

Зарегистрирован:
19 May 2005
Сообщения: 23
Примеры кода: 0
 

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

24 January 2007 18:15  


Здравствуйте.

Первый раз пришлось проектировать и писать программу целиком и полностью самому. Это клиент для небольшой БД.
Возник вопрос по обработке исключений. Т.е. я конечно заворачиваю то, что считаю нужным в try catch, где, помоему данные всегда будут верными — этого не делаю. Т.е. не обрабатываю всё возможные исключения. И конечно-же иногда ошибаюсь. У пользователя программа просто закрываетя, сама-по себе. Не хорошо. И реализовал я такой код в Program.cs:

MainForm mainForm = new MainForm();

#if DEBUG
Application.Run(mainForm);
#else
try {
Application.Run(mainForm);
}
catch (Exception ex) {
string fileName = Application.StartupPath + @"\"
+ Path.GetFileNameWithoutExtension(Application.ExecutablePath)
+ ".crtitical";
using (Stream s = File.Open(fileName, FileMode.Append, FileAccess.Write, FileShare.Read))
using (TextWriter tw = new StreamWriter(s)) {
StringBuilder sb = new StringBuilder();
do {
sb.Append(ex.ToString());
sb.Append(Environment.NewLine);
} while ((ex = ex.InnerException) != null);

tw.WriteLine(DateTime.Now.ToLocalTime());
tw.WriteLine(sb.ToString());
tw.WriteLine();
}
mainForm.ErrorSaveData();
MessageBox.Show("Программа выполнила недопустимую операцию и будет закрыта.", "Критическая ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
#endif

Может конечно данных и маловато пишется в лог, но это поправимо, другое дело ещё и mainForm.ErrorSaveData();
Там у меня происходит сохранение данных в БД, если есть изменения, это делается в транзакции и отлавливаются любые исключения, т.е. я посчитал, что если при критической ошибке данные будут целыми и есть возможность их сохранить, пусть
это произойдёт, а если сохранить возможности нет, то это молча проигнорируется.

Вопрос — такое решение имеет право насуществование или подобные вещи делаются по-другому?
... << RSDN@Home 1.2.0 alpha rev. 0>>

Данное сообщение получено с сайта RSDN
Наверх
  



Общие вопросы программирования на ASP.NET

 Обработка необработанных исключений.Barlog M.  24 January 2007 18:15
 Re: Обработка необработанных исключений._FRED_  24 January 2007 18:34
 Обработка необработанных исключений.mishazhutov  24 January 2007 18:35
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта