Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение объекта вызвовшего исключение 
V
    Опции темы
sharpross
Дата 16.4.2012, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 12.4.2012

Репутация: нет
Всего: нет



Имеется такой метод:
Код

        public bool Load(string fileName)
        {
            OdbcConnection connection = new OdbcConnection();
            connection.ConnectionString = connectionString + Path.GetDirectoryName(fileName) + ";";
            OdbcCommand command = connection.CreateCommand();

            command.CommandText = string.Format("SELECT * FROM {0}", Path.GetFileName(fileName).Replace(".dbf", string.Empty));

            try
            {
                connection.Open();
                dataTable.Load(command.ExecuteReader());
                connection.Close();
                return true;
            }
            catch(Exception ex)
            {
                new ExceptionReport(command, ex);
                return false;
            }
        }


есть свой класс ExceptionReport где идёт обработка исключения, а в параметрах
1 - объект который вызвал исключение
2 - само исключение

Вопрос: как определить кто вызвал ошибку (connection или command) что бы я смог отправить этот экземпляр в свою обработку исключений?
PM MAIL   Вверх
sharpross
Дата 16.4.2012, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 12.4.2012

Репутация: нет
Всего: нет



Вот примерное безобразие хочу получить (страшно выглядит но работает так как хочу):
Код

        public bool Load(string fileName)
        {
            OdbcConnection connection = new OdbcConnection();
            connection.ConnectionString = connectionString + Path.GetDirectoryName(fileName) + ";";
            OdbcCommand command = connection.CreateCommand();

            command.CommandText = string.Format("SELECT * FROM {0}", Path.GetFileName(fileName).Replace(".dbf", string.Empty));
            object obj = null;
            try
            {
                obj = connection;
                connection.Open();

                obj = command;
                dataTable.Load(command.ExecuteReader());

                obj = connection;
                connection.Close();

                return true;
            }
            catch(Exception ex)
            {
                new ExceptionReport(obj, ex);
                return false;
            }
        }

Есть иная реализация данной задачи?
PM MAIL   Вверх
erm0l0v
Дата 17.4.2012, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 11.1.2011

Репутация: 1
Всего: 1



Exception не хранит ссылку на объект вызвавший исключение (try catch и так дорогостоящая операция) единственное что вы можете сделать это получить класс в котором произошло исключение с помощью StackTrace. Ну или как вы уже сделали, написать свой Exception с нужной информацией.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0406 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.