Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/55: Рейтинг темы: голосов - 55, средняя оценка - 4.87
10 / 10 / 7
Регистрация: 17.05.2009
Сообщений: 140

Обработка ошибок при работе с БД MySQL

13.02.2014, 20:17. Показов 10257. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Необходимо обработать такие исключения как нет подключения к серверу/неверный адрес, не найдена БД, неверный пароль или логин и т.д.
Этот пример выводит сообщение ошибки на английском языке. Хотелось бы как-то отловить основные ошибки, и вывести возможные причины только уже на русском, чтобы пользователю было понятно что не так, или даже предложить возможное решение.

C#
1
2
3
4
5
6
7
8
9
try
{
con.Open();
}
catch (MySqlException ex)
            {
                MessageBox.Show(ex.Message);
                
            }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.02.2014, 20:17
Ответы с готовыми решениями:

Обработка ошибок при работе с БД
Если кто-то знает как это делается - помогите пожайлуста! При загрузке ASP-странице данные берутся из БД, но если база не доступна, то надо...

Обработка ошибок в try...catch при работе с БД
В хранимой процедуре делаю RAISERROR 10000000,'...' (MS SQL2000). В скрипте JScript ASP страницы в блоке try ... catch вызываю. В одном...

Обработка ошибок при работе с файлами
Обработка ошибок при работе с файлами.Нужно переписать файл в другой файл заменяя при этом 'f' на 'ф'.Хотелось бы ,что бы в программе мы...

6
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
14.02.2014, 00:29
skynet80, во-первых интуиция даже у разработчиков библиотеки не настолько развита, чтобы подсказывать возможные решения, а уж у программы тем более. Во-вторых программа ничего не делает "сама", и если вас не устраивают сообщения об ошибке на английском, то сделайте словарь, и переводите с его помощью:
C#
1
2
3
4
5
6
7
8
9
10
11
static readonly Dictionary<string,string> MySqlEngToRusDictionary = new Dictionary<string,string> {{"blabla", "блабла"},{"blabla2", "блабла2"}}
 
try
{
con.Open();
}
catch (MySqlException ex)
            {
                MessageBox.Show(MySqlEngToRusDictionary[ex.Message]);
                
            }
0
10 / 10 / 7
Регистрация: 17.05.2009
Сообщений: 140
14.02.2014, 09:55  [ТС]
Psilon, я имел ввиду под возможным решением к примеру это - скажем ошибка неверный логин или пароль, предложить пользователю открыть настройки программы и сменить их...
0
 Аватар для Kruds
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
14.02.2014, 10:20
Можно попробовать так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
static void Main()
{
    Dictionary<Type, string> exceptions = new Dictionary<Type, string> { {typeof(DivideByZeroException), "Вы делите на ноль"},
                                                                        {typeof(FileNotFoundException), "Файл не найден"}};
    Action<int> throwExc = (x) =>
    {
        Exception ex;
        if (x % 2 == 0)
            ex = new DivideByZeroException();
        else
            ex = new FileNotFoundException();
        throw ex;
    };
 
    try
    {
        throwExc(4);
    }
    catch(Exception ex)
    {
        Console.WriteLine(exceptions[ex.GetType()]);
    }
}
Добавлено через 9 минут
Учтите что в блоке catch так же можно словить исключение, если нужного типа в словаре не окажется. Сужайте круг поиска нужными абстракциями, производные которых вы заранее описали.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
14.02.2014, 18:54
Kruds, как раз сегодня статью читал про подобный антипаттерн
0
 Аватар для Kruds
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
14.02.2014, 19:01
Нельзя ли ссылку или вкратце суть статьи?)
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
14.02.2014, 22:01
Kruds, вместо создания своих классов использовать логику Ссылку не дам, потому что как раз сегодня прошелся CCleaner"ом и потер хистори
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.02.2014, 22:01
Помогаю со студенческими работами здесь

Обработка ошибок при работе с RSS
Здравствуйте. Тяну RSS новости на сайт, всё успешно. Но как только ресурс с новостями не доступен, или же просто в конфиге нет ссылки на...

Обработка ошибок MySQL
Добрый день. Пишу приложение, работающее с БД MySQL. В этом приложении есть возможность добавление новых записей в таблицу. Обращение к БД...

Обработка ошибок обращения к MySQL
Приветствую. Я только начинаю изучать PHP и MySQL. Дали задание произвести выборку из базы данных. С обработкой ошибок. Саму выборку...

Express.js - MySQL обработка ошибок запроса
Доброго времени суток! Express.js 4 Скажите пожалуйста как обработать ошибку MySQL запроса? $(document).ready(function(){ var...

Логгирование ошибок при работе устройства
Здравствуйте Уважаемые форумчане. Есть некое устройство на андройд 5.1 и софт, разработанный для данного устройства. В ходе...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru